Mehr Rechte mit sudo
Aus Gentoo Linux Wiki
| Terminals / Shells • X • Portage • System • Dateisysteme • Kernel • Netzwerk• Sonstiges • alphabetischer Tipp Index |
Wer kennt das Problem nicht, mal eben schnell einen Befehl auszuführen, der root-Rechte erfordert. Also auf die root-Konsole wechseln und den Befehl absetzten. Es gibt aber auch eine andere Möglichkeit: sudo
Sudo ermöglicht es dem Admin, mit Hilfe einer Konfig-Datei die Standard-Rechte zu verändern. In der Konfig-Datei kann festgelegt werden welche Benutzer/Gruppen welches Programm ausführen dürfen.
Inhaltsverzeichnis |
[Bearbeiten] Installation
Das Programm wird in gewohnter Art und Weise installiert.
| Code: Shell |
emerge app-admin/sudo # Die Sudo-Utilities. emerge app-vim/sudo # Das 'Visudo'-Package, um die Konfiguration unter VI zu bearbeiten. |
[Bearbeiten] Konfiguration
Die Konfiguration wird in der Konfig-Datei /etc/sudoers festgelegt. Diese ist nicht direkt änderbar. Für das editieren gibt es ein spezielles Script, das wie folgt unter dem Benutzer Root gestartet wird.
| Code: Shell |
visudo |
Danach öffnet sich der VI und die Konfig-Datei kann editiert werden.
[Bearbeiten] Ein Beispiel
Nachfolgendes Beispiel gibt einen kurzen Überblick der Möglichkeiten des Sudo-Befehls. Für den intensiveren Einstieg empfehle ich die Manpages zu sudo (man sudo) und sudoers (man sudoers) zu lesen.
Es soll eine Gruppe (hier:PUSER) auf einem Host (hier:zion) mounten, das System rebooten, anhalten und einen Shutdown durchführen können, ohne ein Passwort eingeben zu müssen. Es soll außerdem eine Gruppe (PNET) das Netzwerk hoch und runterfahren dürfen.
# /etc/sudoers # Reset der Umgebungsvariablen Defaults env_reset # User alias / Gruppen alias # User_Alias Variable = Liste von Usern User_Alias PUSERS = neo, morpheus, trinity User_Alias PNET = trinity, cypher # Host alias # Host_Alias Variable = Liste von Hostsysteme Host_Alias SYSTEM = zion # Cmnd alias # Cmnd_Alias Variable = Befehl_1, Befehl_2, Befehl_3, Befehl_n Cmnd_Alias EMERGE = /usr/bin/emerge Cmnd_Alias MOUNT = /bin/mount,/bin/umount Cmnd_Alias SHUTDOWN = /sbin/shutdown Cmnd_Alias HALT = /sbin/halt Cmnd_Alias REBOOT = /sbin/reboot Cmnd_Alias NET = /etc/init.d/net.eth* # User- und Gruppen-Rechte Spezifikation # User/Benutzer server=(Befehl wir als XYZ ausgefuehrt) was_darf_er # root darf alles root ALL = (ALL) ALL # die Gruppe PUSERS duerfen ohne Passwortabfrage folgendes ausfuehren: PUSERS SYSTEM = NOPASSWD: MOUNT, SHUTDOWN, HALT, REBOOT # die Gruppe PNET darf das Netzwerk hoch und runterfahren # allerdings mit einer erneuten Passwortabfrage # Benutzer "dozer" darf dies auch. PNET SYSTEM = NET dozer SYSTEM = NET
Nun kann man die Befehle wie folgt aufrufen. Hier mountet der Benutzer neo ein CD-Rom Laufwerk in den Ordner /mnt/cdrom. Dies geschieht laut obiger definition ohne eine Passwort-Abfrage.
| Code: Shell |
neo@zion ~ $ sudo mount /dev/hdc1 /mnt/cdrom |
Nun soll der User Dozer das Netzwerk hochfahren. Bei diesem Beispiel wird allerdings
nach dem absetzten des Befehls nach einem Passwort gefragt. Dieses muss der User
dozer mit seinem eigenen Passwort verifizieren.
| Code: Shell |
dozer@zion ~ $ sudo /etc/init.d/net.eth0 start |
[Bearbeiten] Hinweis
Das Programm ist sehr mächtig, also Vorsicht bei den Dingen die konfiguriert werden. Nicht umsonst gibt es Befehle/Programme, die nur mit Root-Rechten ausgeführt werden sollten.
