Solaris Handbuch für Fortgeschrittene Benutzer

3.7 Zugriffsrechte


Hinweis -

Da Sie es bei der täglichen Arbeit häufig mit Zugriffsrechten zu tun haben werden, sollten Sie diesen Abschnitt besonders aufmerksam lesen.


Zugriffsrechte legen fest, wer auf eine Datei oder ein Verzeichnis zugreifen darf und welche Zugriffsarten gestattet sind.

Es gibt drei Arten von Zugriffsrechten:

Zugriffsrechte können an drei Arten von Benutzern vergeben werden:

3.7.1 Zugriffsrechte und Status anzeigen (ls -l)

Daß Sie mit dem Befehl ls Dateinamen auflisten können, wissen Sie bereits. Wenn Sie den Befehl mit der Option -l eingeben, werden außer den Dateinamen eine Reihe weiterer Dateiattribute angezeigt. Abbildung 3-2 zeigt ein Beispiel für die Ausgabe des Befehls ls -l:

Abbildung 3-2 Dateiattribute anzeigen

Graphic

Das erste Zeichen gibt den Dateityp an: Ein Bindestrich (-) steht für eine Textdatei und ein d für ein Verzeichnis. Darüber hinaus gibt es weitere Dateitypen, die hier jedoch nicht behandelt werden.

Die folgenden neun Zeichen geben an, welche Zugriffsrechte für die Datei oder das Verzeichnis gelten. Diese Zeichen sind in drei Blöcke zu je drei Zeichen gegliedert, wobei der erste Block für den Eigentümer, der zweite für die Gruppe und der dritte für alle anderen Benutzer gilt. Für die Datei leerdatei gelten beispielsweise die Berechtigungen rw-r--r--, d. h. der Eigentümer der Datei verfügt über Lese- und Schreibberechtigung, während alle anderen Benutzer sie nur lesen, aber nicht verändern dürfen. Der Inhalt des Verzeichnisses obst2 darf nur vom Eigentümer geändert werden, da alle anderen Benutzer lediglich über Lese- und Ausführberechtigung verfügen.

Außer den Zugriffsrechten werden folgende Informationen angezeigt:

Wechseln Sie mit cd in Ihr Home-Verzeichnis, und probieren Sie den Befehl ls -l aus. Auf Ihrem System werden natürlich andere Daten angezeigt als in unserem Beispiel.

Geben Sie den Befehl danach in folgendem Format ein:

$ ls -l verzeichnisname

Ersetzen Sie verzeichnisname dabei durch den Namen eines Verzeichnisses in Ihrem Dateisystem. Der Befehl ls -l zeigt daraufhin die Attribute aller Dateien und (falls vorhanden) Unterverzeichnisse in diesem Verzeichnis an.

3.7.2 Versteckte Dateien anzeigen (ls -a)

Versteckte Dateien können mit dem Befehl ls ohne Optionen nicht angezeigt werden. Diese Dateien heißen auch Punktdateien, weil der Dateiname mit einem Punkt beginnt. Beispiele für Punktdateien sind .cshrc, .login und .profile. Um neben den normalen Dateien auch eventuell vorhandene Punktdateien mit aufzulisten, geben Sie ls mit der Option -a ein:

$ ls -a

.

..

.cshrc

.login

.profile

leerdatei

Die Punktdateien stehen vor den normalen Dateien. Die Dateien . und .. repräsentieren das aktuelle Verzeichnis und das übergeordnete Verzeichnis.

Punktdateien werden im allgemeinen nur vom System verwendet und vom Benutzer nicht verändert. Es gibt jedoch Ausnahmen, von denen einige in späteren Kapiteln behandelt werden.

3.7.3 Zugriffsrechte ändern (chmod)

Mit dem Befehl chmod ändern Sie die Zugriffsrechte für eine Datei oder ein Verzeichnis. Dies ist allerdings nur möglich, wenn Sie Eigentümer der Datei sind oder sich als Superuser angemeldet haben. Der Befehl chmod wird in folgendem Format eingegeben:

chmod  berechtigungen name

Dabei steht berechtigungen für die geänderten Zugriffsrechte und name für den Namen der Datei oder des Verzeichnisses.

Zugriffsrechte können auf unterschiedliche Weise definiert werden. Am einfachsten geht es in folgender Form:

  1. Verwenden Sie einen oder mehrere der folgenden Buchstaben, um anzugeben, für welche Benutzer die Zugriffsrechte gelten sollen:

    • u (für den Eigentümer)

  2. g (für die Gruppe)

  3. o (für alle anderen Benutzer)

  4. a (für alle drei oben genannten Kategorien)

  5. Geben Sie an, ob Berechtigungen hinzugefügt (+) oder entfernt (-) werden.

  6. Verwenden Sie einen oder mehrere der folgenden Buchstaben, um die neuen Zugriffsrechte festzulegen:

    • r (für Leseberechtigung)

  7. w (für Schreibberechtigung)

  8. x (für Ausführberechtigung)

Im folgenden Beispiel erteilt der Eigentümer des Verzeichnisses mango allen Mitgliedern seiner Benutzergruppe Schreibberechtigung für das Verzeichnis (berechtigungen wird also durch g+w und name durch mango ersetzt):

$ ls -l mango

drwxr-xr-x  3 user2           1024 Feb 10 11:15 mango

$ chmod g+w mango

$ ls -l mango

drwxrwxr-x  3 user2           1024 Feb 10 11:15 mango

$

Statt des Bindestrichs, der für keine Schreibberechtigung" steht, erscheint in den Zugriffsrechten für die Gruppe nun ein w.

Um Lese- und Ausführzugriffe auf das Verzeichnis von Benutzern außerhalb der Gruppe auszuschließen, würden Sie folgendes eingeben:

$ ls -l mango

drwxrwxr-x  3 user2           1024 Feb 10 11:15 mango

$ chmod o-rx mango

$ ls -l mango

drwxrwx---  3 user2           1024 Feb 10 11:15 mango

$

In den Zugriffsrechten für andere Benutzer werden nun statt dem r (für Leseberechtigung) und dem x (für Ausführberechtigung) zwei Bindestriche angezeigt.

Wenn Sie eine neue Datei oder ein neues Verzeichnis anlegen, vergibt das System automatisch Zugriffsrechte.

Für neue Dateien gelten normalerweise folgende Zugriffsrechte:

-rw-r--r--

Bei neuen Verzeichnissen werden folgende Zugriffsrechte vergeben:

drwxr-xr-x

Damit eine neue Datei namens pfirsich von ihrem Eigentümer (user2) ausgeführt werden kann, müßte dieser (oder der Superuser) also zunächst folgendes eingeben:

$ ls -l pfirsich

-rw-r--r--  3 user2           1024 Feb 10 12:27 pfirsich

$ chmod u+x pfirsich

$ ls -l pfirsich

-rwxr--r--  3 user2           1024 Feb 10 12:27 pfirsich

$

Mit der Option a können Sie Zugriffsrechte gleichzeitig an alle drei Benutzerkategorien vergeben. Um allen Benutzern Ausführberechtigung für eine neue Datei namens orange zu erteilen, würden Sie also folgendes eingeben:

$ ls -l orange

-rw-r--r--  3 user2           1024 Feb 10 11:31 orange

$ chmod a+x orange

$ ls -l orange

-rwxr-xr-x  3 user2           1024 Feb 10 11:31 orange

$

Nach Ausführung des Befehls chmod erscheint in allen drei Blöcken das Zeichen x.

Zugriffsrechte können mit Hilfe des Metazeichens * auch für mehrere Dateien oder Verzeichnisse gleichzeitig vergeben werden. Im folgenden Beispiel werden die Zugriffsrechte für die Dateien im Verzeichnis obst so geändert, daß nur noch der Eigentümer des Verzeichnisses über Schreibberechtigung verfügt:

$ pwd

/home/user2/obst

$ ls -l

-rwxrwxrwx  3 user2          21032 Feb 12 10:31 kirsche

-rwxrwxrwx  2 user2             68 Feb 10 11:09 erdbeere

-rwxrwxrwx  3 user2          12675 Feb 08 09:31 orange

-rwxrwxrwx  1 user2           1024 Feb 14 16:38 zitrone

$ chmod go-w *

$ ls -l

-rwxr-xr-x  3 user2          21032 Feb 12 10:31 kirsche

-rwxr-xr-x  2 user2             68 Feb 10 11:09 erdbeere

-rwxr-xr-x  3 user2          12675 Feb 08 09:31 orange

-rwxr-xr-x  1 user2           1024 Feb 14 16:38 zitrone

$

Da der Befehl chmod in der oben gezeigten Form immer auf die Dateien im aktuellen Verzeichnis angewendet wird, sollten Sie vorher mit pwd prüfen, ob Sie sich im richtigen Verzeichnis befinden.

3.7.4 Absolute Zugriffsrechte vergeben

In den bisherigen Beispielen wurden Zugriffsrechte relativ zu den aktuell geltenden Einstellungen geändert. Sie können Zugriffsrechte mit chmod jedoch auch ändern, ohne die aktuellen Einstellungen zu kennen. Bei der Vergabe solcher absoluter Zugriffsrechte werden Benutzerkategorie und Zugriffsberechtigung nicht durch Buchstabenkürzel, sondern durch einen Zahlencode angegeben.

Die Befehlssyntax lautet in diesem Fall:

chmod numcode name

numcode steht für den Berechtigungscode und name für den Namen der Datei oder des Verzeichnisses, deren/dessen Zugriffsrechte geändert werden sollen.

Der Berechtigungscode besteht aus je einer Zahl für die drei Benutzerkategorien. Mit dem folgenden Befehl erhalten der Eigentümer des Verzeichnisses orange und seine Gruppe Lese-, Schreib- und Ausführberechtigung, alle anderen Benutzer dagegen nur Ausführberechtigung:

$ chmod 771 orange

Tabelle 3-1 zeigt, aus welchen Elementen sich der Berechtigungscode 771 zusammensetzt.

Tabelle 3-1 Zugriffsrechte für orange

Berechtigung 

Eigentümer 

Gruppe 

Andere 

Lesen 

Schreiben 

Ausführen 

Gesamt 

Jede Spalte in Tabelle 3-1repräsentiert eine Benutzerkategorie. Jeder Berechtigungsart ist ein bestimmter Wert zugeordnet: 4 für Leseberechtigung, 2 für Schreibberechtigung und 1 für Ausführberechtigung. Die Summe der ersten, zweiten und dritten Spalte entspricht der ersten, zweiten und dritten Ziffer des Berechtigungscodes.

Hier ein weiteres Beispiel für die Vergabe von absoluten Zugriffsrechten, bei dem die Ergebnisse mit dem Befehl ls -l geprüft werden:

$ ls -l zitrone

-rw-r--r--  3 user2           1024 Feb 10 11:46 zitrone

$ chmod 755 zitrone

$ ls -l zitrone

-rwxr-xr-x  3 user2           1024 Feb 10 11:48 zitrone

$

Für die Datei zitrone gelten also folgende Zugriffsrechte: der Eigentümer kann sie lesen, schreiben und ausführen, während die Gruppe und alle anderen Benutzer nur Lese- und Ausführberechtigung haben. Tabelle 3-2 zeigt, wie der Berechtigungscode ermittelt wird.

Tabelle 3-2 Zugriffsrechte für zitrone

Berechtigung 

Eigentümer 

Gruppe 

Andere 

Lesen 

Schreiben 

Ausführen 

Gesamt 

Um als Eigentümer der Datei kirsche sich selbst, der Gruppe und allen anderen Benutzern Lese-, Schreib- und Ausführberechtigung zu erteilen, würden Sie also folgendes eingeben:

$ ls -l kirsche

-rw-r--r--  3 user2           1024 Feb 10 11:51 kirsche

$ chmod 777 kirsche

$ ls -l kirsche

-rwxrwxrwx  3 user2           1024 Feb 10 11:53 kirsche

$

Tabelle 3-3 zeigt, wie dieser Code zustandekommt:

Tabelle 3-3 Zugriffsrechte für kirsche

Berechtigung 

Eigentümer 

Gruppe 

Andere 

Lesen 

Schreiben 

Ausführen 

Gesamt 

Der Code 777 entspricht also der maximalen Anzahl Berechtigungen, die Sie für eine Datei oder ein Verzeichnis vergeben können.

Auch bei dieser Methode können Sie mit dem Metazeichen * Zugriffsrechte für alle Dateien des aktuellen Verzeichnisses definieren. Im folgenden Beispiel vergibt der Eigentümer des Verzeichnisses obst an sich selbst Lese-, Schreib- und Ausführberechtigung für alle darin enthaltenen Dateien, seine Gruppe erhält Lese- und Ausführberechtigung und alle anderen Benutzer lediglich Ausführberechtigung:

$ pwd

/home/user2/obst

$ ls -l

-rwxrwxrwx  3 user2          21032 Feb 12 10:31 kirsche

-rwxrwxrwx  2 user2             68 Feb 10 11:09 erdbeere

-rwxrwxrwx  3 user2          12675 Feb 08 09:31 orange

-rwxrwxrwx  1 user2           1024 Feb 14 16:38 zitrone

$ chmod 751 *

$ ls -l

-rwxr-x--x  3 user2          21032 Feb 12 10:31 kirsche

-rwxr-x--x  2 user2             68 Feb 10 11:09 erdbeere

-rwxr-x--x  3 user2          12675 Feb 08 09:31 orange

-rwxr-x--x  1 user2           1024 Feb 14 16:38 zitrone

$

Mit dem Befehl pwd wird zu Beginn geprüft, ob obst tatsächlich aktuelles Verzeichnis ist. Der Befehl ls -l wird hier, wie auch in den vorhergehenden Beispielen, nur verwendet, um das Ergebnis der Änderung zu verdeutlichen.

Weitere Informationen zu chmod(1) siehe man Pages(1): User Commands.