Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
206 14 Zugriffsrechte<br />
nem Benutzer als Eigentümer zugeordnet. <strong>Die</strong>s ist in der Regel der Benutzer, der<br />
den Prozess gestartet hat – auch hier haben Prozesse, die mit Administratorrechten<br />
gestartet wurden, die Möglichkeit, ihre Identität zu ändern, und der SUID-<br />
Mechanismus (Abschnitt 14.4) kann hier ebenfalls eingreifen.<br />
<strong>Die</strong> Eigentümer der Prozesse werden vom Programm ps angezeigt, wenn es<br />
mit der Option -u aufgerufen wird.<br />
# ps -u<br />
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND<br />
bin 89 0.0 1.0 788 328 ? S 13:27 0:00 rpc.portmap<br />
test1 190 0.0 2.0 1100 28 3 S 13:27 0:00 bash<br />
test1 613 0.0 1.3 968 24 3 S 15:05 0:00 vi XF86.tex<br />
nobody 167 0.0 1.4 932 44 ? S 13:27 0:00 httpd<br />
root 1 0.0 1.0 776 16 ? S 13:27 0:03 init [3]<br />
root 2 0.0 0.0 0 0 ? SW 13:27 0:00 (kflushd)<br />
14.4 Besondere Zugriffsrechte für ausführbare Dateien<br />
Beim Auflisten der Dateien mit dem Befehl »ls -l« bekommen Sie bei manchen<br />
Dateien neben den bekannten Zugriffsrechten rwx abweichende Anzeigen wie<br />
-rwsr-xr-x 1 root shadow 32916 Dec 11 20:47 /usr/bin/passwd<br />
Was soll das? Hierzu müssen wir etwas weiter ausholen:<br />
Angenommen, das Programm passwd sei mit folgenden Zugriffsrechten versehen:<br />
-rwxr-xr-x 1 root shadow 32916 Dec 11 20:47 /usr/bin/passwd<br />
SUID-Bit<br />
Ein normaler (unprivilegierter) Benutzer, sagen wir mal hugo, möchte nun sein<br />
Kennwort ändern und ruft das Kommando passwd auf. Als nächstes erhält er die<br />
Meldung “permission denied”. Was ist die Ursache? Der passwd-Prozess (der mit den<br />
Rechten von hugo läuft) versucht die Datei /etc/shadow zum Schreiben zu öffnen<br />
und scheitert natürlich, da nur root die erforderliche Schreibberechtigung besitzt<br />
– dies darf auch nicht anders sein, sonst könnte jeder die Kennwörter beliebig<br />
manipulieren, etwa um das root-Kennwort zu ändern.<br />
Mit Hilfe <strong>des</strong> Set-UID-Bits (oft kurz »SUID-Bit« genannt) kann dafür gesorgt<br />
werden, dass ein Programm nicht mit den Rechten <strong>des</strong> Aufrufers, sondern <strong>des</strong> Dateieigentümers<br />
– hier root – ausgeführt wird. Im Fall von passwd hat der Prozess, der<br />
passwd ausführt, also Schreibrecht auf die Datei /etc/shadow, obwohl der aufrufende<br />
Benutzer als Nicht-Systemadministrator dieses Schreibrecht sonst nicht hat. Es<br />
liegt in der Verantwortung <strong>des</strong> Programmierers von passwd, dafür zu sorgen, dass<br />
mit diesem Recht kein Schindluder getrieben wird, etwa indem Programmierfehler<br />
ausgenutzt werden, um beliebige Dateien außer /etc/shadow zu manipulieren<br />
oder andere Einträge in /etc/shadow außer dem Kennwortfeld <strong>des</strong> aufrufenden Benutzers<br />
zu verändern. Unter <strong>Linux</strong> funktioniert der Set-UID-Mechanismus übrigens<br />
nur für Maschinencode-Programme, nicht für Shell- oder andere Interpreter-<br />
Skripte.<br />
B<br />
<strong>Die</strong> Bell Labs hatten eine Weile lang ein Patent auf den – von Dennis Ritchie<br />
erfundenen – SUID-Mechanismus [SUID]. AT&T hatte Unix zuerst nur<br />
unter der Voraussetzung verteilt, dass nach der Erteilung <strong>des</strong> Patents Lizenzgebühren<br />
erhoben werden würden; wegen der logistischen Schwierigkeit,<br />
Jahre später von Hunderten von Unix-Installationen rückwirkend kleine<br />
Geldbeträge einzutreiben, entschloss man sich jedoch, das Patent der Allgemeinheit<br />
zur Verfügung zu stellen.<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH