Seit den Anfängen, also Anfang 1990, wurde Linux als
Mehrbenutzersystem entwickelt. Es kann also von mehreren Benutzern
gleichzeitig bearbeitet werden. Bevor Benutzer auf ihrer
Arbeitsstation eine Sitzung starten können, müssen Sie sich beim
System anmelden. Jeder Benutzer verfügt über einen Benutzernamen mit
einem zugehörigen Passwort. Durch diese Abgrenzung kann
gewährleistet werden, dass nicht autorisierte Benutzer keine Dateien
anzeigen können, für die sie keine Berechtigung aufweisen.
Umfassendere Änderungen des Systems, beispielsweise das Installieren
neuer Programme, sind im Regelfall für normale Benutzer entweder gar
nicht oder nur beschränkt möglich. Nur der Benutzer „root“, auch
Superuser genannt, kann uneingeschränkt
Änderungen am System vornehmen und uneingeschränkt auf alle Dateien
zugreifen. Diejenigen Benutzer, die hinsichtlich dieses Konzepts
überlegt vorgehen, sich also nur als Benutzer root
mit uneingeschränkten Rechten
anmelden, wenn dies erforderlich ist, können dazu beitragen, dass
Risiko versehentlicher Datenverluste zu minimieren. Da unter
normalen Umständen nur root
Systemdateien löschen oder Festplatten
formatieren kann, kann die Bedrohung durch Trojanische
Pferde bzw. durch die versehentliche Eingabe
zerstörender Befehle deutlich verringert werden.
Grundsätzlich ist jede Datei in einem Linux-Dateisystem einem Benutzer und einer Gruppe zugehörig. Sowohl diese Gruppen (die Eigentümer) als auch alle anderen können zum Schreiben, Lesen oder Ausführen dieser Dateien autorisiert werden.
Eine Gruppe kann, in diesem Fall, als eine Reihe verbundener
Benutzer mit bestimmten gemeinsamen Rechten definiert werden. So
kann eine Gruppe, die an einem bestimmten Projekt arbeitet, den
Namen project3
erhalten. Jeder Benutzer in
einem Linux-System ist Mitglied mindestens einer eigenen Gruppe,
normalerweise users
. In einem System können so
viele Gruppen wie erforderlich vorhanden sein, jedoch kann nur
root
Gruppen
hinzufügen. Jeder Benutzer kann mithilfe des Befehls
groups ermitteln, in welchen Gruppen er
Mitglied ist.
Berechtigungen werden im Dateisystem für Dateien und Verzeichnisse unterschiedlich organisiert. Informationen zu Dateiberechtigungen können über den Befehl ls -l angezeigt werden Die Ausgabe sieht u. U. wie in Beispiel 3.1, „Beispielausgabe mit Dateiberechtigungen“ aus.
Beispiel 3.1. Beispielausgabe mit Dateiberechtigungen
-rw-r----- 1 tux project3 14197 Jun 21 15:03 Roadmap
Wie aus der dritten Spalte hervorgeht, ist diese Datei
Benutzer tux
zugehörig. Sie ist der Gruppe project3
zugewiesen. Um die Benutzerberechtigungen für die Datei
Roadmap
zu ermitteln, muss die erste
Spalte genauer untersucht werden.
- |
rw- |
r-- |
--- |
Typ |
Benutzerberechtigungen |
Gruppenberechtigungen |
Berechtigungen für andere Benutzer |
Diese Spalte besteht aus einem vorangestellten Zeichen,
auf das neun in Dreiergruppen aufgeteilte Zeichen folgen.
Der erste der zehn Buchstaben steht für den Typ der
Dateisystemkomponente. Der Bindestrich
(–
) besagt, dass es sich um eine Datei
handelt. Es kann auch auf ein Verzeichnis
(d
), einen Link (l
),
ein Blockgerät (b
) oder ein
zeichenorientiertes Gerät hingewiesen werden.
Die nachfolgenden drei Blöcke folgen einem
Standardmuster. Aus den ersten drei Zeichen geht hervor, ob
die Datei gelesen werden kann (r
) oder
nicht (–
). Ein w
im
mittleren Teil gibt an, dass das entsprechende Objekt
bearbeitet werden kann, ein Bindestrich
(–
) bedeutet, dass nicht in die Datei
geschrieben werden kann. Ein x
an dritter
Stelle gibt an, dass das Objekt ausgeführt werden kann. Da
es sich bei der Datei in diesem Beispiel um eine Textdatei
handelt, nicht um eine ausführbare Datei, ist der Zugriff
zum Ausführen für diese bestimmte Datei nicht erforderlich.
In diesem Beispiel verfügt tux
als Eigentümer der Datei
Roadmap
, über Lese-
(r
) und Schreibzugriff
(w
) für die Datei, kann sie jedoch nicht
ausführen (x
). Die Mitglieder der Gruppe
project3
können die Datei lesen, sie
jedoch nicht bearbeiten oder ausführen. Andere Benutzer
dürfen auf diese Datei nicht zugreifen. Weitere
Berechtigungen können über Zugriffssteuerungslisten (Access
Control Lists, ACLs) zugewiesen werden.
Zugriffsberechtigungen für Verzeichnisse weisen den Typ
d
auf. Für Verzeichnisse weicht die
Bedeutung der einzelnen Berechtigungen geringfügig
voneinander ab.
Beispiel 3.2. Beispielausgabe mit Verzeichnisberechtigungen
drwxrwxr-x 1 tux project3 35 Jun 21 15:15 ProjectData
In Beispiel 3.2, „Beispielausgabe mit Verzeichnisberechtigungen“ sind der
Eigentümer (tux
)
und die Eigentümergruppe (project3
) des
Verzeichnisses ProjectData
leicht zu
identifizieren. Im Gegensatz zu den
Dateizugriffsberechtigungen unter Dateizugriff
gibt die
festgelegte Leseberechtigung (r
) an, dass
der Inhalt des Verzeichnisses angezeigt werden kann. Die
Schreibberechtigung (w
) ermöglicht die
Erstellung neuer Dateien. Die Berechtigung für das Ausführen
(x) ermöglicht dem Benutzer den Wechsel zu diesem
Verzeichnis. Im obigen Beispiel können der Benutzer
tux
sowie die
Mitlgieder der Gruppe project3
zum
Verzeichnis ProjectData
wechseln
(x
), den Inhalt anzeigen
(r
) sowie Dateien hinzufügen oder löschen
(w
). Die restlichen Benutzer verfügen
hingegen über weniger Zugriffsrechte. Sie können zum
Verzeichnis wechseln (x
) und es
durchsuchen (r
), jedoch keine neuen
Dateien hinzufügen (w
).
Die Zugriffsberechtigungen für eine Datei und ein
Verzeichnis können vom Eigentümer und natürlich von
root
mithilfe
des Befehls
chmod
geändert werden, gefolgt von den Parametern,
mit denen die Berechtigungen geändert werden, und einem oder
mehreren Dateinamen. Die Parameter fallen in
unterschiedliche Kategorien:
Hinsichtlich der Benutzer
u
(user
(Benutzer)) – Eigentümer der Datei
g
(group
(Gruppe)) – Gruppe, der die Datei
gehört
o
(others
(weitere)) – zusätzliche Benutzer (wenn
kein Parameter angegeben ist, gelten die Änderungen
für alle Kategorien)
Ein Zeichen für das Löschen (–
),
Festlegen (=
) oder Einfügen
(+
)
Die Abkürzungen
r
– read
(Lesen)
w
– write
(Schreiben)
x
– execute
(Ausführen)
Dateiname oder durch Leerzeichen voneinander getrennte Dateinamen
Wenn der Benutzer tux
in Beispiel 3.2, „Beispielausgabe mit Verzeichnisberechtigungen“
beispielsweise auch anderen Benutzern Schreibzugriff
(w
) für das Verzeichnis
ProjectData
gewähren möchte, ist dies
über den Befehl chmod o+w ProjectData
möglich.
Wenn er jedoch allen Benutzern außer sich selbst keine
Schreibberechtigungen erteilen möchte, kann er hierzu den
Befehl chmod go-w ProjectData eingeben.
Um allen Benutzern das Hinzufügen einer neuen Datei zu
Ordner ProjectData
zu verwehren, geben
Sie chmod -w ProjectData ein. Nun kann
selbst der Eigentümer nicht mehr in die Datei schreiben,
ohne zuvor die Schreibberechtigungen wieder einzurichten.
Weitere wichtige Befehle für das Steuern von
Eigentümerschaft und Berechtigungen der
Dateisystemkomponenten sind chown
(change owner (Eigentümer ändern)) und
chgrp (change group (Gruppe ändern)).
Mithilfe des Befehls chown kann die
Eigentümerschaft einer Datei auf einen anderen Benutzer
übertragen werden. Diese Änderung darf jedoch nur von
Benutzer root
vorgenommen werden.
Angenommen, die Datei Roadmap
aus
Beispiel 3.2, „Beispielausgabe mit Verzeichnisberechtigungen“ soll nicht mehr Eigentum
von tux
, sondern
von Benutzer geeko
sein. In diesem Fall sollte root
chown geeko Roadmap eingeben.
Mit chgrp wird die
Gruppeneigentümerschaft der Datei geändert. Der Eigentümer
der Datei muss jedoch Mitglied der neuen Gruppe sein. Auf
diese Weise kann Benutzer tux
aus Beispiel 3.1, „Beispielausgabe mit Dateiberechtigungen“ die
Eigentümerschaft der Datei ProjectData
in project4
ändern (mithilfe des Befehls
chgrp project4 ProjectData), wenn er
Mitglied dieser neuen Gruppe ist.