Home / LinuxUser / 2002 / 12 / Sticky, SUID, SGID – Sonderrechte für Dateien und Verzeichnisse

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Alles Recht

Sticky, SUID, SGID – Sonderrechte für Dateien und Verzeichnisse

Unter falscher Flagge

Ausnahmsweise nicht auf Verzeichnisse, sondern ausschließlich auf ausführbare Dateien bezieht sich das SUID-Bit, also das s-Bit, das im Tripel der Eigentümerrechte gesetzt wird. Es sorgt dafür, dass Linux das entsprechende Programm nicht mit den Rechten des aufrufenden Users, sondern mit denen der Datei-Besitzerin ausführt. So läuft beispielsweise das passwd-Programm zum Ändern des Passworts effektiv immer mit root-Rechten, selbst wenn es von unprivilegierten Usern aufgerufen wird:

pjung@linux:~> ls -al /usr/bin/passwd
-r-sr-xr-x 1 root bin   8735 Feb 17  2000 /usr/bin/passwd

Der Grund: Beim Setzen des Passworts muss die Passwortdatei geändert werden. Diese darf aber nicht für alle Welt schreibbar sein, sonst wäre dem Schabernack mit fremden Passwörtern Tür und Tor geöffnet. Liefe das passwd-Programm hingegen wie üblich mit den Rechten der Aufrufenden, so kann es natürlich nur Dateien ändern, für die diese Benutzerin Schreibrechte hat, also sicher nicht die Passwortdatei. Aus dem Dilemma hilft das SUID-Bit: Das passwd-Programm bekommt für die Dauer seiner Tätigkeit root-Rechte und darf somit das Passwort austauschen.

Abbildung 1: Konqueror verschweigt das SUID-Bit in der Ballon-Hilfe – erst der "Eigenschaften"-Dialog aus dem Kontextmenü klärt auf

Doch so hilfreich das SUID-Bit ist, so gefährlich ist es auch: Wenn ein mit SUID-Rechten laufendes Programm nicht sauber programmiert ist, bietet es Hackern u. U. Angriffsmöglichkeiten. Im schlimmsten Fall heißt das, dass der unter Fremdrechten laufende Prozess weitere Programme mit den privilegierteren Rechten ausführt und/oder dem aufrufenden User eigentlich nicht zugängliche Dateien manipuliert. Deshalb ist es aus Sicherheitsgründen angeraten, das SUID-Bit sehr sparsam zu vergeben. Bei Shell-Skripten wirkt es vorsichtshalber gar nicht.

Was mit User-Berechtigungen geht, funktioniert auch bei Gruppen: Setzt man das SGID-Bit für ausführbare Dateien, laufen entsprechende Prozesse "im Namen" der Besitzergruppe, also effektiv mit deren Rechten. Voraussetzung ist nur, dass der aufrufende User die Datei auch ausführen darf.

Sonderrechte einräumen

Ob nun rwx oder s und t – Rechte vergibt oder entzieht das Kommando chmod (change mode). Wie bei den Lese-, Schreib- und Ausführbarkeitsrechten geht das mit den arithmetischen Operationen +, - und =: chmod u-s programmdatei entfernt das SUID-Recht von einem Programm, chmod g+xs verzeichnis verteilt das SGID-Bit gleichzeitig mit dem Verzeichniswechselrecht für die Inhabergruppe und chmod o=rwxt verzeichnis setzt das für alle anderen User gedachte Rechtetripel auf rwt.

Fehlt dem Sonderrecht das "darunterliegende" x-Bit, macht ls dies durch einen Großbuchstaben S bzw. T an der entsprechenden Stelle deutlich.

Natürlich lassen sich die Spezialrechte auch in Oktalschreibweise setzen. So wie dem Leserecht r der Wert 4, dem Schreibrecht w der Wert 2 und dem x-Bit die 1 zugeordnet sind, bekommen auch sie Zahlen-Äquivalente:

  • 1 für das t-Bit (Sticky Bit),
  • 2 für das SGID-Bit und
  • 4 für das SUID-Bit.

Damit sich diese nicht mit rwx beißen, addiert man sie nicht etwa zur Summe der Eigentümer-, Gruppen- oder Anderen-Rechte hinzu, sondern summiert sie in einem eigenen, vierten Wert zusammen: chmod 1777 verzeichnis sorgt genauso wie chmod u,g=rwx,o=rwxt dafür, dass verzeichnis die Rechte rwxrwxrwt bekommt: Die erste Ziffer steht für die Summe der Sonderrechte, hier also 1 für t, die zweite zählt die "normalen" Rechte der Eigentümerin zusammen (r+w+x=4+2+1=7), die dritte die der Gruppe und die letzte die der Anderen. Soll das Verzeichnis noch das SGID-Bit hinzubekommen (rwxrwsrwt), lautet der Befehl chmod 3777 verzeichnis. Die oben aufgelisteten Rechte von /usr/bin/passwd hingegen (r-sr-xr-x) wurden sicher einmal mit chmod 4555 /usr/bin/passwd gesetzt.

Glossar

ls

Das Kommando /bin/ls kann man deshalb einfach mit seinem Dateinamen ls ("list") aufrufen, weil das Verzeichnis /bin im Suchpfad steht. Gibt man die Option -a mit an, listet es auch versteckte Dateien mit auf. Die Option -l erzwingt ein "langes Listing", bei dem zum Beispiel die Rechteangaben mit aufgeführt werden. Mit -d sagt man ls, dass nicht der Inhalt des als Argument angegebenen Verzeichnisses interessiert, sondern nur die Angaben zum Verzeichnis ("directory") selbst.

grep

Dieses Kommandozeilenprogramm sucht eine angegebene Zeichenkette (genauer gesagt: einen regulären Ausdruck) in einer Datei (oder den Daten von der Standardeingabe). Sofern man seine Funktionsweise nicht mit Optionen modifiziert, gibt es die Zeilen aus, in denen der Suchausdruck vorkommt.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...