Hallo, ich verwende seit kurzem Ubuntu 9.04 Zum Herunterfahren benötige ich root-Rechte (sudo halt). Wie kann es sein, dass jeder Benutzer über Gnome den PC herunterfahren kann? Hat die grafische Oberfläche etwa auch root-Rechte?
1 | F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD |
2 | 5 S 0 4904 1 0 80 0 - 813 - ? 00:00:00 kdm |
3 | 4 S 0 4909 4904 2 80 0 - 6212 - tty7 00:03:26 Xorg |
4 | 5 S 0 4916 4904 0 80 0 - 998 - ? 00:00:00 kdm |
5 | 4 S 1000 5675 4916 0 80 0 - 443 - ? 00:00:00 startkde |
6 | 5 S 0 5821 1 0 80 0 - 391 - ? 00:00:00 start_kdeinit |
Teilweise schon (UID = 0).
Könnte das von Usern ausgenutzt werden, um root-RECHTE zu erlangen?
Ja, aber sofern kein Bug/Sicherheitslücke vorliegt darf man dadurch nur bestimmte eingeschränkte Aktionen durchführen, wie hier z.B. herunterfahren.
Linuxnutzer schrieb:
> Könnte das von Usern ausgenutzt werden, um root-RECHTE zu erlangen?
Kompliziert; mit der Anmeldung arbeitest du ja wieder im
Benutzerkontext. Überleg mal: Letztlich stammen alle Prozesse vom init
ab, welches ja auch als root läuft.
Bei einer "normalen" Ubuntu-Installation ist dein Benutzerkonto ja insofern relativ privilegiert, dass du etliches machen kannst womit Du im Endeffekt an Rootrechte kommst - aber eben dein Benutzerpasswort eingeben musst. Damit hat man schonmal Automatismen, Schadprogramme usw recht effizient hinter sich gelassen (die Gefahr, dass irgendetwas wartet bis man eine privilegierte Aktion ausfuehrt, und dann den Passwortdialog nachmacht, ist evtl noch gegeben)... Bei einer "klassischen" Unix/Linux-Installation sind die Rechte genau so gesetzt dass ein normaler Benutzeraccount sie absolut nicht selber erweitern kann - das ist aber eben die sichere aber unhandliche Variante...
Ich weiß jetzt nicht ob das auf diesen Fall zutrifft, aber man macht solche Dinge oft so: Man setzt das SUID(SUID = Set User ID)-Datei-Flag der Programmdatei des Programms, welches eine privilegierte Aktion ( z.B. eben herunterfahren) ausführen soll. Dies bewirkt, dass das Programm immer als der Benutzer, dem die Datei gehört (also oft root), ausgeführt wird, egal wer es startet, sodass das Programm eben den Computer herunterfahren kann. Wenn man voraussetzt, dass das Programm keinen Bug oder Sicherheitslücke enthält, ist das auch recht sicher, da das Programm eben nur diese eine Aktion durchführt, und nicht dazu gebracht werden kann (können sollte ;), irgendwelche schädlichen Aktionen durchzuführen. Daher sind solche Programme immer sehr klein und haben z.B. keine grafische Oberfläche (diese wird dann, falls eine benötigt wird, "extern" in einem nicht-SUID-Programm gemacht), um möglichst wenig Fehlerquellen zu haben. Das klassische Beispiel ist passwd, das Konsolen-Programm um das eigene Passwort zu verändern: Die Passwörter sind in /etc/passwd (bzw. bei neueren Linuxen in /etc/shadow) gespeichert. Diese Datei ist nur für root beschreibbar, sodass ein Benutzer sein Passwort eigentlich nicht ändern kann. Das passwd-Programm hat aber eben dieses SUID-Flag gesetzt, sodass, wenn ein Benutzer es aufruft, um sein Passwort zu ändern, das Programm als root gestartet wird und /etc/passwd beschreiben kann. Das Programm achtet dabei natürlich darauf, dass der Benutzer nur sein eigenes Passwort ändern kann, oder eben auch gar nicht ändern kann, falls root es so konfiguriert hat. Die Programme su, sodu etc. (und ihre grafischen Pendants gksu etc.) arbeiten übrigens genauso. Noch mehr Kontrolle über die von Benutzern durchführbaren Aktionen erreicht man, indem man dafür sorgt, dass die Programmdatei des SUID-Programms einer bestimmten Benutzergruppe gehört, und nur Benutzer dieser Gruppe können dieses Programm ausführen (so kann sudo z.B. nur von Benutzern, die in der wheel-Gruppe sind, ausgeführt werden - wimre.).
Linuxnutzer schrieb: > Hallo, > ich verwende seit kurzem Ubuntu 9.04 > Zum Herunterfahren benötige ich root-Rechte (sudo halt). > Wie kann es sein, dass jeder Benutzer über Gnome den PC herunterfahren > kann? > Hat die grafische Oberfläche etwa auch root-Rechte? Nein. Nur du als Hauptuser kannst ohne Passworteingabe den Rechner runterfahren. Wenn du einen neuen User anlegst und diesem ein normales Desktop Profil gibst, hat der zwar den Menupunkt "Ausschalten", aber der Hauptuser muss dann sein Passwort eingeben. Der Hauptuser hat gewisse Rechte automatisch (wie das Herunterfahren) und für andere Sachen wie Software Installieren muss man das Passwort eingeben, um temporär Root Rechte zu erhalten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.