4.4.1 Zugriffsrechte von Dateien und Verzeichnissen
Die Zugriffsrechte von Dateien und Verzeichnissen sind separat f�r die
folgenden drei Nutzerkategorien definiert:
-
den Nutzer (user), der die Datei besitzt (u),
-
andere Nutzer der Gruppe (group), zu welcher die Datei geh�rt
(g) und
-
alle anderen (other) Nutzer (o).
Bei Dateien sind je folgende Rechte m�glich:
-
lesbar (readable) (r): zum Auslesen des Inhalts der Datei
-
schreibbar (writable) (w): zum Modifizieren der Datei
-
ausf�hrbar (executable) (x): zum Starten der Datei als
Kommando
F�r Verzeichnisse sind je folgende Rechte m�glich:
-
lesbar (readable) (r): zum Anzeigen des Verzeichnisinhalts
-
schreibbar (writable) (w): zum Hinzuf�gen oder Entfernen von
Dateien im Verzeichnis
-
ausf�hrbar (executable) (x): zum Zugriff auf Dateien im
Verzeichnis
Das ausf�hrbar-Recht des Verzeichnisses bezieht sich nicht nur
auf das Lesen von Dateien im entsprechenden Verzeichnis, sondern auch auf das
Bestimmen der Attribute wie Gr��e und Modifizierungszeit.
Um diese und einige andere Informationen zu Dateien und Verzeichnissen zu
erhalten, kann ls
genutzt werden. Vergleiche ls(1)
.
Wird ls
mit der -l-Option gestartet, so werden die
folgenden Informationen in der folgenden Reihenfolge angezeigt:
-
der Dateityp (erstes Zeichen)
-
-: normale Datei
-
d: Verzeichnis (directory)
-
l: symbolischer Link
-
c: zeichenorientiertes Ger�t
-
b: blockorientiertes Ger�t
-
die Zugriffsrechte der Datei (die n�chsten neun Zeichen sind
je drei Zeichen f�r Nutzer, Gruppe und Andere in dieser Reihenfolge)
-
die Anzahl der harten Links zur Datei
-
der Name des Nutzers der die Datei besitzt
-
der Name der Gruppe zu der die Datei geh�rt
-
die Gr��e der Datei in Bytes
-
das Datum und die Zeit der Datei (Modifizierungszeit, mtime)
-
der Name der Datei.
Um den Besitzer einer Datei zu �ndern, wird chown
von root
genutzt. Vergleiche chown(1)
. Zum �ndern der Gruppe einer Datei,
wird chgrp
vom Besitzer der Datei oder root verwendet. Vergleiche
chgrp(1)
. Das �ndern der Zugriffsrechte von Dateien oder
Verzeichnissen erfolgt mit chmod
durch den Dateibesitzer oder
root. Vergleiche chmod(1)
.
Um z.B. einen Verzeichnisbaum dem Nutzer nutzer und der Gruppe
gruppe zuzuordnen, ist als root folgendes auszuf�hren:
# cd /Pfad/zum/Verzeichnis
# chown -R nutzer:gruppe .
# chmod -R ug+rwX,o=rX .
Es gibt drei weitere spezielle Zugriffsbits:
-
set user ID (s oder S anstatt Nutzer's x),
-
set group ID (s oder S anstatt Gruppe's x) und
-
Sticky Bit (t oder T anstatt Andere's x).
Hier werden in der Ausgabe von ls -l
diese Bits gro�geschrieben,
wenn die ausf�hrbar-Bits, die in der Ausgabe nicht mit dargestellt werden
k�nnen, nicht gesetzt sind.
Das Setzen der set user ID einer ausf�hrbaren Datei, erlaubt
es einem Nutzer, die Datei mit den Rechten und der ID des Besitzers der Datei
auszuf�hren (z.B. root). �hnlich erlaubt das Setzen des
set group ID-Rechts einer ausf�hrbaren Datei, dass diese mit
der Gruppen-ID und den Gruppenrechten der Datei (z.B. root)
gestartet wird. Dies kann zu Sicherheitsproblemen f�hren, deshalb erfordert
das Setzen dieser Bits spezielle Vorsicht.
Setzen der set group ID eines Verzeichnisses aktiviert das
BSD-artige Dateierzeugungs Schema, bei welchem alle im Verzeichnis erstellten
Dateien der Gruppe group des Verzeichnisses angeh�ren.
Das Setzen des Sticky Bits eines Verzeichnisses verhindert das
Entfernen einer Datei im Verzeichnis durch einen Nutzer, der nicht der Besitzer
ist. Um den Inhalt einer Datei in einem f�r alle oder auch f�r
Gruppenmitglieder schreibbaren Verzeichnis wie /tmp
zu sichern,
gen�gt es nicht das schreibbar-Recht der Datei zu entfernen,
sondern es muss auch das Sticky Bit des Verzeichnisses gesetzt
werden. Andernfalls kann die Datei entfernt werden und eine neue Datei mit
gleichem Namen durch andere Nutzer mit Schreibrechten im Verzeichnis angelegt
werden.
Es folgen einige interessante Beispiele f�r Zugriffsrechte von Dateien.
$ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
crw-rw---- 1 root dip 108, 0 Jan 18 13:32 /dev/ppp
-rw-r--r-- 1 root root 1051 Jan 26 08:29 /etc/passwd
-rw-r----- 1 root shadow 746 Jan 26 08:29 /etc/shadow
-rwsr-xr-- 1 root dip 234504 Nov 24 03:58 /usr/sbin/pppd
$ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
drwxrwxrwt 4 root root 4096 Feb 9 16:35 /tmp
drwxrwsr-x 10 root staff 4096 Jan 18 13:31 /usr/local
drwxrwsr-x 3 root src 4096 Jan 19 08:36 /usr/src
drwxrwsr-x 2 root mail 4096 Feb 2 22:19 /var/mail
drwxrwxrwt 3 root root 4096 Jan 25 02:48 /var/tmp