09.04.2014 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

208 14 Zugriffsrechte<br />

$ ls -l /tmp/hugo.txt<br />

-rw-r--r-- 1 hugo hugo 0 Jan 6 17:23 /tmp/hugo.txt<br />

$ touch /home/projekt/hugo.txt Projektverzeichnis<br />

$ ls -l /home/projekt/hugo.txt<br />

-rw-r--r-- 1 hugo projekt 0 Jan<br />

6 17:24 /home/projekt/hugo.txt<br />

Das ganze hat nur einen Schönheitsfehler, den Sie erkennen, wenn Sie sich<br />

die letzte Zeile <strong>des</strong> Beispiels anschauen: <strong>Die</strong> Datei hat zwar die richtige<br />

Gruppenzugehörigkeit, aber andere Mitglieder der Gruppe projekt dürfen<br />

sie trotzdem nur lesen. Wenn Sie möchten, dass alle Mitglieder von projekt<br />

schreiben dürfen, müssen Sie entweder nachträglich chmod anwenden (lästig)<br />

oder die umask so setzen, dass das Gruppenschreibrecht erhalten bleibt<br />

(siehe Übung 14.4).<br />

Der SGID-Modus verändert nur das Verhalten <strong>des</strong> Betriebssystems beim Erzeugen<br />

neuer Dateien. Der Umgang mit bereits existierenden Dateien ist in diesen<br />

Verzeichnissen völlig normal. Das bedeutet beispielsweise, dass eine Datei, die<br />

außerhalb <strong>des</strong> SGID-Verzeichnisses erzeugt wurde, beim Verschieben dorthin ihre<br />

ursprüngliche Gruppe behält (wohingegen sie beim Kopieren die Gruppe <strong>des</strong><br />

Verzeichnisses bekommen würde).<br />

Auch das Programm chgrp arbeitet in SGID-Verzeichnissen völlig normal: der<br />

Eigentümer einer Datei kann sie jeder Gruppe zueignen, der er selbst angehört.<br />

Gehört der Eigentümer nicht zu der Gruppe <strong>des</strong> Verzeichnisses, kann er die Datei<br />

mit chgrp nicht dieser Gruppe übergeben – dazu muss er sie in dem Verzeichnis<br />

neu erzeugen.<br />

B<br />

Es ist möglich, bei einem Verzeichnis das SUID-Bit zu setzen – diese Einstellung<br />

hat aber keine Wirkung.<br />

<strong>Linux</strong> unterstützt noch einen weiteren Spezialmodus für Verzeichnisse, bei<br />

dem das Löschen oder Umbenennen von darin enthaltenen Dateien nur dem Besitzer<br />

der jeweiligen Datei erlaubt ist:<br />

drwxrwxrwt 7 root root 1024 Apr 7 10:07 /tmp<br />

sticky bit<br />

Mit diesem t-Modus, dem sticky bit, kann einem Problem begegnet werden, das<br />

bei der gemeinsamen Verwendung öffentlicher Verzeichnisse entstehen kann: Das<br />

Schreibrecht für das Verzeichnis erlaubt auch das Löschen fremder Dateien, unabhängig<br />

von deren Zugriffsmodus und Besitzer! Beispielsweise sind die /tmp-<br />

Verzeichnisse öffentlicher Raum, in dem von vielen Programmen temporäre Dateien<br />

angelegt werden. Um darin Dateien anlegen zu können, haben alle Benutzer<br />

für diese Verzeichnisse Schreibrecht. Damit hat jeder Benutzer auch das Recht,<br />

Dateien in diesem Verzeichnis zu löschen.<br />

Normalerweise betrachtet das Betriebssystem beim Löschen oder Umbenennen<br />

einer Datei die Zugriffsrechte auf die Datei selbst nicht weiter. Wenn auf einem<br />

Verzeichnis das sticky bit gesetzt wird, kann eine Datei in diesem Verzeichnis<br />

anschließend nur von ihrem Eigentümer, dem Eigentümer <strong>des</strong> Verzeichnisses<br />

oder root gelöscht werden. Das sticky bit kann über die symbolische Angabe +t<br />

bzw. -t gesetzt oder gelöscht werden, oktal hat es in derselben Ziffer wie SUID<br />

und SGID den Wert 1.<br />

B<br />

Das sticky bit bekommt seinen Namen von einer weiteren Bedeutung, die es<br />

früher in anderen Unix-Systemen hatte: Seinerzeit wurden Programme vor<br />

dem Start komplett in den Swap-Speicher kopiert und nach dem Programmlauf<br />

wieder daraus entfernt. Programmdateien, auf denen das sticky bit gesetzt<br />

war, wurden dagegen auch noch nach dem Programmende im Swap-<br />

Speicher liegengelassen. <strong>Die</strong>s beschleunigte weitere Startvorgänge für dasselbe<br />

Programm, weil der anfängliche Kopiervorgang entfiel. <strong>Linux</strong> verwendet<br />

wie die meisten heutigen Unix-Systeme demand paging, holt also nur die<br />

Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!