| Alle Macht dem User |
|---|
|
Selbstschutz
Virenschutz
Wann User, wann "root"?
su
Zugriff auf X-Server
Doch noch immer kann kein X-Programm gestartet werden, denn diesem muss erst noch mitgeteilt werden, welches Display verwendet werden soll. Hierfuer sorgt die Shellvariable "DISPLAY" (vgl. "man X"), die "root" noch setzen muss (z.B. durch die Eingabe von "DISPLAY=:0.0; export DISPLAY"). Ein Beispiel, bei dem der Dateimanager "X-Files" mit Rootrechten in einer User-X-Session genutzt werden soll:
| jo@planet ~> xauth extract xauth_jo $DISPLAY | jo@planet ~> su - | Password: | root@planet:~> xauth merge /home/jo/xauth_jo | xauth: creating new authority file /root/.Xauthority | root@planet:~> DISPLAY=:0.0; export DISPLAY | root@planet:~> X-Files | Starting X-Files...Will man diese Einstellungen nicht jedesmal neu vornehmen sondern automatisch setzen lassen, so bietet sich fuer die Shellvariable $DISPLAY des "Users root" die Datei "/root/.bashrc" an (sofern die Bash verwendet wird). Der Schluessel selber bleibt fuer kuenftige Sitzungen erhalten. Da "root" jedoch die Daten des Users lesen kann, ist in diesem Fall ein Auslesen, Transportieren und Einfuegen des Schluessels nicht erforderlich - so ist es moeglich, statt dem Ex- und Importieren einfach die gesamte Datei "~/.Xauthority" des Users zu uebernehmen. Beispiel:
| jo@planet ~> su - | Password: | root@planet:~> cp /home/jo/.Xauthority /root/ | root@planet:~> DISPLAY=:0.0; export DISPLAY | root@planet:~> X-Files | Starting X-Files...Weniger dramatisch als das Kopieren oder Importieren fremder Zugangsdaten ist das Setzen der Umgebungsvariablen "XAUTHORITY", die "root" einfach auf die ".Xauthority" des Users zeigen lassen kann. Allerdings muss bei dieser Methode die Variable bei jedem Wechsel zum Rootaccount erneut gesetzt werden (vgl. $DISPLAY):
| jo@planet ~> su - | Password: | root@planet:~> XAUTHORITY=/home/jo/.Xauthority; export XAUTHORITY | root@planet:~> DISPLAY=:0.0; export DISPLAY | root@planet:~> X-Files | Starting X-Files... nach obenSSH
| jo@planet ~> ssh -l root localhost | root@127.0.0.1's password: [ ... ] | root@planet:~> X-Files | Starting X-Files... sudo
jo ALL=NOPASSWD:/usr/local/sbin/fetchnews ein, so erlaubt das dem User "jo" "/usr/local/sbin/fetchnews" ohne Passworteingabe zu starten - er muss es nur ueber "sudo /usr/local/sbin/fetchnews" aufrufen. Fuer den Start von X-Programmen gilt aber auch hier das zu "su" beschriebene - "root" muss wissen, dass ein zuvor freigegebenes Display verwendet werden soll (xauth & $DISPLAY). Wer seine Shell freigibt (diese aber bitte nur *mit* Passworteingabe freigeben), kann mittels sudo komfortabel eine Rootshell herbeirufen, bei der alle Einstellungen des Users erhalten bleiben. Auch muss - wie bei ssh - kein Zugriff auf den X-Server mehr konfiguriert werden. Hierzu dient bei sudo die Option "-s" ("sudo -s"): | jo@planet ~> sudo -s [ ... ] | password: | root@planet ~> X-Files | Starting X-Files... superAehnlich wie "sudo" ist das Tool "super": Findet sich in dessen Konfigurationsdatei "/etc/super.tab" eine Zeile wie
fnews /usr/local/sbin/fetchnews jo,joe so koennen die User "jo" und "joe" das Programm "fetchnews" ohne Passworteingabe starten - aufzurufen ueber "super fnews" (vgl. "man 5 super"). Ein alleiniger Aufruf von "super" listet dem User alle ihm ueber "super" genehmigten Programme auf.
Und wem "super Programmname" bzw. "sudo Programmname" noch immer zu
umstaendlich ist, der legt sich z.B. ein Alias "fetchnews" fuer "sudo
fetchnews" bzw. "super fnews" an. Eintrag ins Startmenue
#!/bin/sh XAUTHORITY=/home/username/.Xauthority; export XAUTHORITY DISPLAY=:0.0; export DISPLAY programm Ein solches Skript abgespeicher unter -rwxr-x--- root root /usr/local/sbin/dateiname und aufgerufen ueber "sudo /usr/local/sbin/dateiname" startet das
gewuenschte Programm mit Rootrechten und ohne Passwortabfrage auf dem
Userdesktop. Und da spaetestens jetzt hinsichtlich Bedienung und Komfort
kein Unterschied mehr zwischen User und "root" besteht - warum weiterhin
noch die Risiken des Rootaccounts in Kauf nehmen? Weitere Informationen
* http://scrye.com/~kevin/lsh/ Und wer mehr ueber den (Fremd-)Zugriff auf den X-Server erfahren moechte, dem sei das "Remote X Apps mini-HOWTO" empfohlen - dieses ist ebenfalls Bestandteil von "/usr/share/doc", sowie unter folgenden Adressen erhaeltlich:
* http://www.xs4all.nl/~zweije/xauth.html Dieses Posting ist mit kleinen Ergaenzungen im WWW zu finden unter |
| Autor: Jo Moskalewski, Datum: 3.11.2001 |