PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl hddtemp über sudoers für normalen Benutzer erlauben



Boron
09.12.06, 14:45
Hallo zusammen,

ich möchte den Befehl hddtemp (um Plattentemperaturen anzuzeigen) durch den User mzwick ausführen.
Standardmässig ist der Befehl nur root vorbehalten. Unter meinem Kubuntu 6.06 führte dehalb bisher kein Weg an sudo vorbei.
Nun habe ich gelesen, dass man die Datei /etc/sudoers mit visudo editieren kann um auch einzelne Befehle einzelnen Nutzern zu erlauben.

Nun habe ich meine /etc/sudoers mal angepasst (neue Zeile in Fett):
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
# Host alias specification

# User alias specification
# Cmnd alias specification
# Defaults

Defaults !lecture,tty_tickets,!fqdn

# User privilege specification
root ALL=(ALL) ALL
mzwick ALL=/usr/sbin/hddtemp *

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
So, dachte ich, kann der User mzwick den Befehl hddtemp mit allen Argumenten ausführen.
Das klappt aber nicht.
Wenn ich als mzwick den Befehl hddtemp /dev/hda ausführe, dann kommt folgendes:
mzwick@boron:~$ hddtemp /dev/hda
/dev/hda: open: Permission denied
mzwick@boron:~$
Erwartet hätte ich aber ein:
mzwick@boron:~$ sudo hddtemp /dev/hda
/dev/hda: ST380011A: 39°C
mzwick@boron:~$
Nur halt ohne das sudo davor :rolleyes:.

Wer oder was untersagt mir da den Zugriff auf /dev/hda?
Oder ist in der sudoers doch noch etwas falsch konfiguriert?
Irgendwelche Ideen oder Anmerkungen?

bla!zilla
09.12.06, 14:49
Falsch. Die /etc/sudoers regelt welche Binaries du mit Hilfe von sudo ausführen darfst. Du musst schon ein sudi voranstellen. Das ausführen von hddtemp ohne sudo geht nur, wenn du das SUID Bit setzt.

Der Gestreifte
09.12.06, 14:56
Alternativ könntest Du hddtemp im daemon-Modus starten, dann kannst Du als User mit "netcat localhost $PORTNUMMER" die Temperaturen auslesen.

Boron
09.12.06, 15:23
Mit chmod u+s /usr/sbin/hddtemp habe ich nun das SUID Bit gesetzt.
Jetzt kann ich auch als normaler User hddtemp ausführen.

Herzlichen Dank.

hp_tux
09.12.06, 19:03
Hallo,


Mit chmod u+s /usr/sbin/hddtemp habe ich nun das SUID Bit gesetzt.
Jetzt kann ich auch als normaler User hddtemp ausführen.
nun, die andere Methode (Daemon-Modus) ist aber wesentlich besser! Auf das SUID-Bit sollte man nach Möglichkeit verzichten, und zwar generell - nicht nur bei "hddtemp"

Gruß

hp_tux

zyrusthc
09.12.06, 19:25
Oder man macht es halt so :

mzwick ALL=NOPASSWD: /usr/sbin/hddtemp

Greeez Oli