Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
104.5 Lektion 1
Thema 101: Systemarchitektur
101.1 Hardwareeinstellungen ermitteln und konfigurieren
  • 101.1 Lektion 1
101.2 Das System starten
  • 101.2 Lektion 1
101.3 Runlevel wechseln und das System anhalten oder neu starten
  • 101.3 Lektion 1
Thema 102: Linux-Installation und -Paketverwaltung
102.1 Festplattenaufteilung planen
  • 102.1 Lektion 1
102.2 Einen Bootmanager installieren
  • 102.2 Lektion 1
102.3 Shared Libraries verwalten
  • 102.3 Lektion 1
102.4 Debian-Paketverwaltung verwenden
  • 102.4 Lektion 1
102.5 RPM und YUM-Paketverwaltung verwenden
  • 102.5 Lektion 1
102.6 Linux als Virtualisierungs-Gast
  • 102.6 Lektion 1
Thema 103: GNU- und Unix-Befehle
103.1 Auf der Befehlszeile arbeiten
  • 103.1 Lektion 1
  • 103.1 Lektion 2
103.2 Textströme mit Filtern verarbeiten
  • 103.2 Lektion 1
103.3 Grundlegende Dateiverwaltung
  • 103.3 Lektion 1
  • 103.3 Lektion 2
103.4 Ströme, Pipes und Umleitungen verwenden
  • 103.4 Lektion 1
  • 103.4 Lektion 2
103.5 Prozesse erzeugen, überwachen und beenden
  • 103.5 Lektion 1
  • 103.5 Lektion 2
103.6 Prozess-Ausführungsprioritäten ändern
  • 103.6 Lektion 1
103.7 Textdateien mit regulären Ausdrücken durchsuchen
  • 103.7 Lektion 1
  • 103.7 Lektion 2
103.8 Grundlegendes Editieren von Dateien
  • 103.8 Lektion 1
Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
104.1 Partitionen und Dateisysteme anlegen
  • 104.1 Lektion 1
104.2 Die Integrität von Dateisystemen sichern
  • 104.2 Lektion 1
104.3 Das Mounten und Unmounten von Dateisystemen steuern
  • 104.3 Lektion 1
104.5 Dateizugriffsrechte und -eigentümerschaft verwalten
  • 104.5 Lektion 1
104.6 Symbolische und Hardlinks anlegen und ändern
  • 104.6 Lektion 1
104.7 Systemdateien finden und Dateien am richtigen Ort plazieren
  • 104.7 Lektion 1
How to get certified
  1. Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
  2. 104.5 Dateizugriffsrechte und -eigentümerschaft verwalten
  3. 104.5 Lektion 1

104.5 Lektion 1

Zertifikat:

LPIC-1

Version:

5.0

Thema:

104 Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard

Lernziel:

104.5 Dateizugriffsrechte und -eigentümerschaft verwalten

Lektion:

1 von 1

Einführung

Als Mehrbenutzersystem muss Linux nachverfolgen können, wem einzelne Dateien gehören und ob ein Benutzer Aktionen an einer Datei durchführen darf oder nicht. Dies dient zum einen dem Schutz der Privatsphäre von Benutzern, die den Inhalt ihrer Dateien vertraulich halten möchten, und zum anderen der Zusammenarbeit, indem bestimmte Dateien für mehrere Benutzer zugänglich sind.

Dies wird durch ein dreistufiges Berechtigungssystem erreicht. Jede Datei auf der Festplatte ist Eigentum eines Benutzers und einer Benutzergruppe und hat drei Sätze von Berechtigungen: einen für den Eigentümer, einen für die Gruppe, der die Datei gehört, und einen für alle anderen. In dieser Lektion lernen Sie, wie Sie die Berechtigungen für eine Datei abfragen, die Bedeutung dieser Berechtigungen und wie Sie diese manipulieren.

Abfragen von Informationen über Dateien und Verzeichnisse

Der Befehl ls liefert eine Liste des Inhalts eines Verzeichnisses. In der Grundform erhalten Sie nur die Dateinamen:

$ ls
Another_Directory  picture.jpg  text.txt

Es gibt jedoch viel mehr Informationen zu jeder Datei, einschließlich Typ, Größe, Eigentümer und mehr. Um diese Informationen zu sehen, rufen Sie ls mit dem Parameter -l für eine “long form”-Liste auf:

$ ls -l
total 536
drwxrwxr-x 2 carol carol   4096 Dec 10 15:57 Another_Directory
-rw------- 1 carol carol 539663 Dec 10 10:43 picture.jpg
-rw-rw-r-- 1 carol carol   1881 Dec 10 15:57 text.txt

Jede Spalte in der obigen Ausgabe hat eine Bedeutung. Schauen wir uns die für diese Lektion relevanten an:

  • Die erste Spalte der Liste zeigt den Dateityp und die Berechtigungen an, zum Beispiel drwxrwxr-x:

    • Das erste Zeichen (d) gibt den Dateityp an.

    • Die nächsten drei Zeichen (rwx) geben die Berechtigungen für den Eigentümer der Datei an, auch als user oder u bezeichnet.

    • Die nächsten drei Zeichen (rwx) geben die Rechte der Gruppe an, der die Datei gehört, auch als g bezeichnet.

    • Die letzten drei Zeichen (r-x) geben die Berechtigungen für alle anderen an, auch bekannt als others oder o.

Tip

Es ist auch üblich, den Satz der Berechtigungen für others als weltweite oder world Berechtigungen zu bezeichnen, im Sinne von: “Jeder andere auf der Welt hat diese Berechtigungen”.

  • Die dritte und vierte Spalten geben die Eigentümerinformationen: den Benutzer bzw. die Gruppe, die Eigentümer der Datei sind.

  • Die siebte und letzte Spalte zeigt den Dateinamen.

Die zweite Spalte zeigt die Anzahl der harten Links, die auf diese Datei zeigen, die fünfte Spalte die Dateigröße. Die sechste Spalte nennt das Datum und die Uhrzeit, zu der die Datei zuletzt geändert wurde. Diese Spalten sind aber für das aktuelle Thema nicht relevant.

Was ist mit Verzeichnissen?

Wenn Sie versuchen, mit ls -l Informationen über ein Verzeichnis abzufragen, erhalten Sie stattdessen eine Liste des Verzeichnisinhalts:

$ ls -l Another_Directory/
total 0
-rw-r--r-- 1 carol carol 0 Dec 10 17:59 another_file.txt

Um dies zu vermeiden und Informationen über das Verzeichnis selbst abzufragen, fügen Sie den Parameter -d zu ls hinzu:

$ ls -l -d Another_Directory/
drwxrwxr-x 2 carol carol 4096 Dec 10 17:59 Another_Directory/

Versteckte Dateien anzeigen

Die Verzeichnisliste, die wir zuvor mit ls -l abgerufen haben, ist unvollständig:

$ ls -l
total 544
drwxrwxr-x 2 carol carol   4096 Dec 10 17:59 Another_Directory
-rw------- 1 carol carol 539663 Dec 10 10:43 picture.jpg
-rw-rw-r-- 1 carol carol   1881 Dec 10 15:57 text.txt

Es gibt noch drei weitere Dateien in diesem Verzeichnis, die jedoch versteckt sind. Unter Linux werden Dateien, deren Name mit einem Punkt (.) beginnt, automatisch versteckt. Um sie zu sehen, müssen wir den Parameter -a zu ls hinzufügen:

$ ls -l -a
total 544
drwxrwxr-x 3 carol carol   4096 Dec 10 16:01 .
drwxrwxr-x 4 carol carol   4096 Dec 10 15:56 ..
drwxrwxr-x 2 carol carol   4096 Dec 10 17:59 Another_Directory
-rw------- 1 carol carol 539663 Dec 10 10:43 picture.jpg
-rw-rw-r-- 1 carol carol   1881 Dec 10 15:57 text.txt
-rw-r--r-- 1 carol carol      0 Dec 10 16:01 .thisIsHidden

Die Datei .thisIsHidden ist lediglich versteckt, weil ihr Name mit . beginnt.

Die Verzeichnisse . und .. sind jedoch speziell. . ist ein Zeiger auf das aktuelle Verzeichnis — und .. ist ein Zeiger auf das übergeordnete Verzeichnis, also dasjenige, das das aktuelle Verzeichnis enthält. Unter Linux enthält jedes Verzeichnis mindestens diese beiden Verzeichnisse.

Tip

Sie können mehrere Parameter für ls (und viele andere Linux-Befehle) kombinieren: ls -l -a kann z.B. als ls -la geschrieben werden.

Dateitypen verstehen

Wir haben bereits erwähnt, dass der erste Buchstabe in jeder Ausgabe von ls -l den Dateityp nennt. Die drei häufigsten Dateitypen sind:

- (normale Datei)

Eine Datei kann Daten jeglicher Art enthalten und hilft, diese Daten zu verwalten. Dateien können geändert, verschoben, kopiert und gelöscht werden.

d (Verzeichnis)

Ein Verzeichnis enthält andere Dateien oder Verzeichnisse und hilft bei der Organisation des Dateisystems. Technisch gesehen sind Verzeichnisse eine besondere Art von Datei.

l (symbolischer Link)

Diese “Datei” ist ein Zeiger auf eine andere Datei oder ein Verzeichnis irgendwo im Dateisystem.

Neben diesen gibt es drei weitere Dateitypen, die Sie zumindest kennen sollten, die aber im Rahmen dieser Lektion keine Rolle spielen:

b (Block Device oder Blockgerät)

Diese Datei steht für ein virtuelles oder physisches Gerät, in der Regel Festplatten oder andere Arten von Speichergeräten, z.B. die erste Festplatte, die durch /dev/sda repräsentiert werden könnte.

c (Character Device oder Zeichengerät)

Diese Datei steht für ein virtuelles oder physisches Gerät. Terminals (wie das Hauptterminal auf /dev/ttyS0) und serielle Schnittstellen sind gängige Beispiele für zeichenbasierte Geräte.

s (Socket)

Sockets dienen als “Kanäle”, die Informationen zwischen zwei Programmen austauschen.

Warning

Ändern Sie keine Berechtigungen für Blockgeräte, Zeichengeräte oder Sockets, wenn Sie nicht genau wissen, was Sie tun, denn dies kann dazu führen, dass Ihr System nicht mehr funktioniert!

Berechtigungen verstehen

Die Ausgabe von ls -l zeigt die Dateiberechtigungen direkt nach dem Dateityp — als drei Gruppen von jeweils drei Zeichen, in der Reihenfolge r, w und x. Denken Sie daran, dass ein Strich - für das Fehlen einer Berechtigung steht. Sehen wir uns die Bedeutung im Folgenden genauer an.

Dateiberechtigungen

r

Steht für read (lesen) und hat den oktalen Wert 4 (wir werden in Kürze Oktale besprechen). Das bedeutet die Erlaubnis, eine Datei zu öffnen und ihren Inhalt zu lesen.

w

Steht für write (schreiben) und hat den oktalen Wert 2. Dies bedeutet die Erlaubnis, eine Datei zu bearbeiten oder zu löschen.

x

Steht für execute (ausführen) und hat den oktalen Wert 1. Dies bedeutet, dass die Datei als Programm oder Skript ausgeführt werden kann.

So kann z.B. eine Datei mit den Rechten rw- zwar gelesen und beschrieben, aber nicht ausgeführt werden.

Verzeichnisberechtigungen

r

Steht für read (lesen) und hat den oktalen Wert 4. Dies steht für die Erlaubnis, den Inhalt des Verzeichnisses zu lesen, z.B. die Namen der darin enthaltenen Dateien. Das schließt aber nicht das Recht ein, die Dateien selbst zu lesen.

w

Steht für write (schreiben) und hat den oktalen Wert 2. Dies berechtigt, Dateien in einem Verzeichnis zu erstellen oder zu löschen.

Beachten Sie, dass Sie diese Änderungen nicht allein mit Schreibrechten vornehmen können, sondern auch Ausführungsrechte (x) benötigen, um in das Verzeichnis zu wechseln.

x

Steht für execute (ausführen) und hat den oktalen Wert 1. Dies steht für die Erlaubnis, in ein Verzeichnis zu wechseln, aber nicht, die enthaltenen Dateien aufzulisten (dafür wird r benötigt).

Die Erläuterungen zu Verzeichnissen mögen ein wenig verwirrend klingen. Stellen wir uns darum zum Beispiel vor, es gibt ein Verzeichnis namens Another_Directory mit folgenden Berechtigungen:

$ ls -ld Another_Directory/
d--x--x--x 2 carol carol 4,0K Dec 20 18:46 Another_Directory

Stellen Sie sich außerdem vor, dass in diesem Verzeichnis ein Shellskript hello.sh liegt:

-rwxr-xr-x 1 carol carol 33 Dec 20 18:46 hello.sh

Wenn Sie carol sind und versuchen, den Inhalt von Another_Directory aufzulisten, erhalten Sie eine Fehlermeldung, da carol nicht leseberechtigt für dieses Verzeichnis ist:

$ ls -l Another_Directory/
ls: cannot open directory 'Another_Directory/': Permission denied

carol hat jedoch Ausführungsrechte, was bedeutet, dass sie in das Verzeichnis wechseln kann. Daher kann carol auf Dateien innerhalb des Verzeichnisses zugreifen, solange sie die richtigen Rechte für die jeweilige Datei hat. Nehmen wir an, carol hat alle Rechte (rwx) für das Skript hello.sh. In diesem Fall kann sie das Skript ausführen (sofern ihr dessen Name bekannt ist), obwohl sie den Inhalt des Verzeichnisses nicht lesen kann:

$ sh Another_Directory/hello.sh
Hello LPI World!

Wie bereits erwähnt, werden die Berechtigungen nacheinander festgelegt: zuerst für den Eigentümer der Datei, dann für die Gruppe und dann für andere Benutzer. Wann immer jemand versucht, eine Aktion an einer Datei durchzuführen, werden die Berechtigungen auf diese Weise überprüft.

Zuerst wird geprüft, ob der aktuelle Benutzer Eigentümer der Datei ist. Ist das der Fall, kommt nur der erste Satz von Berechtigungen zur Anwendung. Andernfalls wird geprüft, ob der aktuelle Benutzer der Gruppe angehört, die Eigentümer der Datei ist. In diesem Fall gilt nur der zweite Satz von Berechtigungen. In allen anderen Fällen wendet das System den dritten Satz von Berechtigungen an.

Das bedeutet, dass, wenn der aktuelle Benutzer der Eigentümer der Datei ist, nur die Eigentümerberechtigungen wirksam sind, auch wenn die Gruppen- oder andere Berechtigungen freizügiger sind als die des Eigentümers.

Dateiberechtigungen ändern

Der Befehl chmod dient dazu, die Berechtigungen für eine Datei zu ändern. Er benötigt mindestens zwei Parameter: Der erste Parameter beschreibt, welche Berechtigungen geändert werden sollen, und der zweite verweist auf die Datei oder das Verzeichnis, an dem die Änderung vorgenommen werden soll. Beachten Sie, dass nur der Eigentümer der Datei oder der Systemadministrator (root) die Dateiberechtigungen ändern kann.

Die zu ändernden Berechtigungen können auf zwei verschiedene Arten, oder “Modi”, beschrieben werden.

Der erste, der symbolische Modus , erlaubt eine detaillierte Steuerung, indem einzelne Berechtigungen hinzugefügt oder widerrufen werden, ohne andere Berechtigungen zu ändern. Der oktale Modus bietet sich an, wenn Sie alle Berechtigungswerte auf einmal setzen möchten.

Beide Modi führen zum selben Ergebnis: Die Befehle

$ chmod ug+rw-x,o-rwx text.txt

und

$ chmod 660 text.txt

führen zum gleichen Resultat, nämlich zu einer Datei mit den folgenden Berechtigungen:

-rw-rw---- 1 carol carol  765 Dec 20 21:25 text.txt

Sehen wir uns nun an, wie jeder Modus funktioniert.

Symbolischer Modus

Um die Rechte im symbolischen Modus zu ändern, gibt das oder geben die erste(n) Zeichen an, wessen Rechte Sie ändern wollen: die für den Benutzer (u), für die Gruppe (g), für andere (o) und/oder für alle (a).

Darüber hinaus geben Sie in dem Befehl an, was er tun soll: Sie können eine Berechtigung erteilen (+), eine Berechtigung entziehen (-) oder auf einen bestimmten Wert setzen (=).

Zuletzt geben Sie an, welchen Berechtigungswert Sie setzen möchten: lesen (r), schreiben (w) oder ausführen (x).

Nehmen wir eine Datei text.txt mit folgenden Berechtigungen:

$ ls -l text.txt
-rw-r--r-- 1 carol carol 765 Dec 20 21:25 text.txt

Um den Mitgliedern der Gruppe, der die Datei gehört, Schreibrechte zu gewähren, nutzen Sie den Parameter g+w. Merken Sie es sich auf diese Weise: “Für die Gruppe (g) erteile (+) Schreibrechte (w)”. Der Befehl würde also lauten:

$ chmod g+w text.txt

Lassen Sie uns das Ergebnis mit ls überprüfen:

$ ls -l text.txt
-rw-rw-r-- 1 carol carol 765 Dec 20 21:25 text.txt

Möchten Sie dem Eigentümer derselben Datei die Leseberechtigung entziehen? Dann stellen Sie sich folgendes vor: “Für den Benutzer (u) entziehe (-) Leserechte (r)”. Der Parameter ist also u-r:

$ chmod u-r text.txt
$ ls -l text.txt
--w-rw-r-- 1 carol carol 765 Dec 20 21:25 text.txt

Und wenn wir die Berechtigungen für alle auf rw- setzen wollen? Dann stellen Sie sich das so vor: “Für alle (a) genau einstellen auf (=) lesen (r), schreiben (w) und ohne ausführen (-)”. Also:

$ chmod a=rw- text.txt
$ ls -l text.txt
-rw-rw-rw- 1 carol carol 765 Dec 20 21:25 text.txt

Natürlich ist es möglich, mehrere Berechtigungen gleichzeitig zu ändern. Trennen Sie sie in diesem Fall mit einem Komma (,):

$ chmod u+rwx,g-x text.txt
$ ls -lh text.txt
-rwxrw-rw- 1 carol carol 765 Dec 20 21:25 text.txt

Das obige Beispiel kann wie folgt gelesen werden: “Für den Benutzer (u) erteile (+) Lese-, Schreib- und Ausführungsrechte (rwx), für die Gruppe (g) entziehe (-) Ausführungsrechte (x)”.

Auf einem Verzeichnis ausgeführt, ändert chmod nur die Berechtigungen des Verzeichnisses. chmod hat auch einen rekursiven Modus, der nützlich ist, wenn Sie die Berechtigungen für “alle Dateien innerhalb eines Verzeichnisses und seiner Unterverzeichnisse” ändern wollen. Fügen Sie dazu den Parameter -R nach dem Befehlsnamen und vor den zu ändernden Berechtigungen ein:

$ chmod -R u+rwx Another_Directory/

Dieser Befehl kann wie folgt gelesen werden: “Rekursiv (-R) für alle Benutzer (u) erteile (+) Lese-, Schreib- und Ausführrechte (rwx)”.

Warning

Seien Sie vorsichtig und überlegen Sie es sich gut, bevor Sie die Option -R verwenden, da es leicht möglich ist, Berechtigungen auf Dateien und Verzeichnisse zu ändern, die Sie nicht ändern wollen, insbesondere auf Verzeichnisse mit einer großen Anzahl von Dateien und Unterverzeichnissen.

Oktalmodus

Im oktalen Modus werden die Berechtigungen auf andere Weise angegeben: als dreistelliger Wert in oktaler Notation, also einem numerischen System mit der Basis 8.

Jede Berechtigung hat einen bestimmten Wert, und sie werden in der folgenden Reihenfolge angegeben: lesen (r), was 4 entspricht, schreiben (w), was 2 entspricht, und zuletzt ausführen (x), was 1 entspricht. Für eine fehlende Berechtigung steht der Wert Null (0). Die Berechtigung rwx entspricht also 7 (4+2+1), und r-x entspricht 5 (4+0+1).

Die erste der drei Ziffern des Berechtigungssatzes steht für die Berechtigungen für den Benutzer (u), die zweite für die Gruppe (g) und die dritte für alle anderen (o). Um die Berechtigungen für eine Datei auf rw-rw---- zu setzen, lautet der oktale Wert 660:

$ chmod 660 text.txt
$ ls -l text.txt
-rw-rw---- 1 carol carol 765 Dec 20 21:25 text.txt

Darüber hinaus ist die Syntax im oktalen Modus die gleiche wie im symbolischen Modus: der erste Parameter steht für die Berechtigungen, die Sie ändern möchten, und der zweite Parameter zeigt auf die Datei oder das Verzeichnis, für das die Änderungen gelten.

Tip

Ist ein Berechtigungswert ungerade ist, ist die Datei stets ausführbar!

Welche Syntax sollten Sie verwenden? Der oktale Modus wird empfohlen, wenn Sie die Berechtigungen auf einen bestimmten Wert ändern wollen, zum Beispiel 640 (rw- r-- ---).

Der symbolische Modus ist nützlicher, um nur einen bestimmten Wert umzuschalten, unabhängig von den aktuellen Berechtigungen für die Datei. So können Sie z.B. mit chmod u+x skript.sh Ausführungsberechtigungen für den Benutzer hinzufügen, ohne die aktuellen Berechtigungen für die Gruppe und andere zu berücksichtigen oder gar zu ändern.

Eigentümer einer Datei ändern

Der Befehl chown dient dazu, die Eigentümerschaft einer Datei oder eines Verzeichnisses zu ändern. Die Syntax ist einfach:

chown USERNAME:GROUPNAME FILENAME

Lassen Sie uns zum Beispiel eine Datei namens text.txt überprüfen:

$ ls -l text.txt
-rw-rw---- 1 carol carol 1881 Dec 10 15:57 text.txt

Die Benutzerin, der die Datei gehört, ist carol, und die Gruppe ist ebenfalls carol. Jetzt ändern wir die Gruppe in students:

$ chown carol:students text.txt
$ ls -l text.txt
-rw-rw---- 1 carol students 1881 Dec 10 15:57 text.txt

Beachten Sie, dass der Eigentümer einer Datei nicht der Gruppe angehören muss, die diese Datei besitzt. Im obigen Beispiel muss carol also nicht Mitglied der Gruppe students sein.

Gesetzte Benutzer- oder Gruppenrechte können Sie weglassen, wenn diese nicht geändert werden sollen. Um also nur die Gruppe zu ändern, die eine Datei besitzt, genügt chown :students text.txt. Um nur den Benutzer zu ändern, würde der Befehl chown carol: text.txt oder einfach chown carol text.txt lauten. Alternativ könnten Sie auch den Befehl chgrp students text.txt verwenden.

Wenn Sie nicht der Systemadministrator (root) sind, können Sie Eigentumsrechte für eine Datei nicht auf einen anderen Benutzer oder eine Gruppe übertragen, der Sie nicht angehören. Bei einem solchen Versuch erhalten Sie die Fehlermeldung Operation not permitted.

Gruppen abfragen

Bevor Sie die Eigentumsrechte einer Datei ändern, kann es nützlich sein zu wissen, welche Gruppen auf dem System existieren, welche Benutzer Mitglieder einer Gruppe sind und zu welchen Gruppen ein Benutzer gehört.

Um zu sehen, welche Gruppen auf Ihrem System existieren, geben Sie getent group ein. Die Ausgabe wird ähnlich wie die folgende aussehen (Ausgabe gekürzt):

$ getent group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,rigues
tty:x:5:rigues
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:rigues

Wenn Sie wissen wollen, zu welchen Gruppen ein Benutzer gehört, fügen Sie den Benutzernamen als Parameter zu groups hinzu:

$ groups carol
carol : carol students cdrom sudo dip plugdev lpadmin sambashare

Um zu sehen, welche Benutzer zu einer Gruppe gehören, verwenden Sie groupmems. Der Parameter -g gibt die Gruppe an, und -l listet alle Mitglieder auf:

# groupmems -g cdrom -l
carol
Tip

groupmems kann nur als root, also vom Systemadministrator ausgeführt werden. Wenn Sie aktuell nicht als root angemeldet sind, setzen Sie sudo vor den Befehl.

Standardberechtigungen

Machen wir ein Experiment! Öffnen Sie ein Terminalfenster und erstellen Sie eine leere Datei mit dem folgenden Befehl:

$ touch testfile

Werfen wir nun einen Blick auf die Berechtigungen für diese Datei. Sie können auf Ihrem System anders sein, aber nehmen wir an, dass sie wie folgt aussehen:

$ ls -lh testfile
-rw-r--r-- 1 carol carol 0 jul 13 21:55 testfile

Die Berechtigungen lauten rw-r—​r--: Lesen und schreiben für den Benutzer, und lesen für die Gruppe und alle anderen — oder 644 im Oktalmodus. Legen Sie nun ein Verzeichnis an:

$ mkdir testdir
$ ls -lhd testdir
drwxr-xr-x 2 carol carol 4,0K jul 13 22:01 testdir

Nun lauten die Rechte rwxr-xr-x : Lesen, schreiben und ausführen für den Benutzer, lesen und ausführen für die Gruppe und alle anderen — oder 755 im oktalen Modus.

Unabhängig davon, wo Sie sich im Dateisystem befinden, erhält jede Datei und jedes Verzeichnis, das Sie erstellen, dieselben Berechtigungen. Haben Sie sich jemals gefragt, woher diese Vorgaben stammen?

Sie stammen aus der Benutzermaske oder User Mask (kurz: umask), die die Standardberechtigungen für jede erstellte Datei bestimmt. Die aktuellen Werte zeigt der Befehl umask:

$ umask
0022

Aber das entspricht nicht rw-r—​r-- oder 644. Sehen wir uns mit dem Parameter -S eine Ausgabe im symbolischen Modus an:

$ umask -S
u=rwx,g=rx,o=rx

Das sind dieselben Berechtigungen, die unser Testverzeichnis in einem der obigen Beispiele erhalten hat. Aber warum waren die Berechtigungen andere, als wir eine Datei erstellt haben?

Es ist nicht sinnvoll, standardmäßig globale Ausführungsberechtigungen für alle auf jede Datei zu setzen, richtig? Verzeichnisse brauchen Ausführungsrechte (sonst kann man nicht in diese hineinwechseln), aber Dateien nicht — darum sind Dateien standardmäßig auch nicht ausführbar, also rw-r—​r--.

Neben der Anzeige der Standardberechtigungen kann umask diese auch für die aktuelle Shell-Sitzung ändern:

$ umask u=rwx,g=rwx,o=

Jedes neue Verzeichnis erbt die Rechte rwxrwx---, und jede Datei rw-rw---- (da sie keine Ausführungsrechte erhalten). Wenn Sie die obigen Beispiele wiederholen, um eine testdatei und ein testdir anzulegen und die Berechtigungen zu überprüfen, sollte das Ergebnis wie folgt aussehen:

$ ls -lhd test*
drwxrwx--- 2 carol carol 4,0K jul 13 22:25 testdir
-rw-rw---- 1 carol carol    0 jul 13 22:25 testfile

Und wenn Sie umask ohne den Parameter -S (symbolischer Modus) ausführen, erhalten Sie:

$ umask
0007

Das Ergebnis sieht nicht vertraut aus, weil die verwendeten Werte unterschiedlich sind. Hier ist eine Tabelle mit jedem Wert und seiner jeweiligen Bedeutung:

Wert Berechtigung für Dateien Berechtigung für Verzeichnisse

0

rw-

rwx

1

rw-

rw-

2

r--

r-x

3

r--

r--

4

-w-

-wx

5

-w-

-w-

6

---

--x

7

---

---

Wie Sie sehen, entspricht 007 rwxrwx---, genau wie gewünscht. Die führenden Nullen können Sie ignorieren.

Besondere Berechtigungen

Neben den Lese-, Schreib- und Ausführungsrechten für Benutzer, Gruppe und alle anderen kann jede Datei drei weitere Sonderrechte haben, die die Arbeitsweise eines Verzeichnisses oder die Ausführung eines Programms beeinflussen. Sie können entweder im symbolischen oder oktalen Modus angegeben werden und lauten wie folgt:

Sticky Bit

Das Sticky Bit, auch Restricted Deletion Flag (eingeschränkte Löschkennzeichnung) genannt, hat den oktalen Wert 1 und wird im symbolischen Modus durch ein t innerhalb der anderen Berechtigungen dargestellt. Es gilt nur für Verzeichnisse und hat keine Auswirkungen auf normale Dateien. Unter Linux verhindert es, dass Benutzer eine Datei in einem Verzeichnis entfernen oder umbenennen können, wenn sie selbst nicht Eigentümer dieser Datei oder dieses Verzeichnisses sind.

Verzeichnisse mit gesetztem Sticky Bit zeigen in der Ausgabe von ls -l ein t anstelle des x bei den Berechtigungen für andere:

$ ls -ld Sample_Directory/
drwxr-xr-t 2 carol carol 4096 Dec 20 18:46 Sample_Directory/

Im oktalen Modus werden die Sonderrechte in 4-stelliger Notation angegeben, wobei die erste Ziffer für die Sonderberechtigung steht. Um z.B. das Sticky Bit (Wert 1) für das Verzeichnis Another_Directory im Oktalmodus mit der Berechtigung 755 zu setzen, lautet der Befehl:

$ chmod 1755 Another_Directory
$ ls -ld Another_Directory
drwxr-xr-t 2 carol carol 4,0K Dec 20 18:46 Another_Directory

SetGID

SetGID, auch SGID oder Set Group ID genannt, hat den oktalen Wert 2 und wird im symbolischen Modus durch ein s auf den Gruppen-Berechtigungen dargestellt. Es kann auf ausführbare Dateien oder Verzeichnisse angewendet werden. Bei Dateien bewirkt es, dass der Prozess mit den Rechten der Gruppe ausgeführt wird, der die Datei gehört. Bei Anwendung auf Verzeichnisse erbt jede Datei oder jedes Verzeichnis, das darunter erstellt wird, die Gruppe des übergeordneten Verzeichnisses.

Dateien und Verzeichnisse mit SGID-Bit zeigen ein s anstelle des x bei den Berechtigungen für die Gruppe in der Ausgabe von ls -l:

$ ls -l test.sh
-rwxr-sr-x 1 carol root 33 Dec 11 10:36 test.sh

Um SGID-Berechtigungen zu einer Datei im symbolischen Modus hinzuzufügen, lautet der Befehl:

$ chmod g+s test.sh
$ ls -l test.sh
-rwxr-sr-x 1 carol root     33 Dec 11 10:36 test.sh

Das folgende Beispiel hilft uns, die Wirkung von SGID auf ein Verzeichnis besser zu verstehen. Nehmen wir ein Verzeichnis namens Sample_Directory, das der Benutzerin carol und der Gruppe users gehört, mit der folgenden Berechtigungsstruktur:

$ ls -ldh Sample_Directory/
drwxr-xr-x 2 carol users 4,0K Jan 18 17:06 Sample_Directory/

Wechseln wir nun in dieses Verzeichnis und legen mit dem Befehl touch eine leere Datei darin an. Das Ergebnis lautet:

$ cd Sample_Directory/
$ touch newfile
$ ls -lh newfile
-rw-r--r-- 1 carol carol 0 Jan 18 17:11 newfile

Die Datei gehört also der Benutzerin carol und der Gruppe carol. Wäre für das Verzeichnis die SGID-Berechtigung gesetzt, wäre das Ergebnis ein anderes. Setzen wir also zunächst das SGID-Bit für Sample_Directory und prüfen das Ergebnis:

$ sudo chmod g+s Sample_Directory/
$ ls -ldh Sample_Directory/
drwxr-sr-x 2 carol users 4,0K Jan 18 17:17 Sample_Directory/

Das s bei den Gruppenberechtigungen zeigt an, dass das SGID-Bit gesetzt ist. Nun wechseln wir in dieses Verzeichnis und legen wieder eine leere Datei mit dem Befehl touch an:

$ cd Sample_Directory/
$ touch emptyfile
$ ls -lh emptyfile
 -rw-r--r-- 1 carol users 0 Jan 18 17:20 emptyfile

Die Gruppe, der die Datei gehört, lautet nun users, weil die Datei durch das SGID-Bit den Gruppeneigentümer users des übergeordneten Verzeichnisses erbt.

SetUID

SUID, auch bekannt als Set User ID, hat den oktalen Wert 4 und wird durch ein s bei den user-Berechtigungen im symbolischen Modus dargestellt. Es gilt nur für Dateien und hat keine Auswirkungen auf Verzeichnisse. Es verhält sich ähnlich wie das SGID-Bit, aber der Prozess wird mit den Berechtigungen des Benutzers, der die Datei besitzt, ausgeführt. Dateien mit dem SUID-Bit haben in der Ausgabe von ls -l ein s anstelle des x bei den Berechtigungen für den Benutzer:

$ ls -ld test.sh
-rwsr-xr-x 1 carol carol 33 Dec 11 10:36 test.sh

Sie können mehrere spezielle Berechtigungen in einem Parameter kombinieren. Um etwa SGID (Wert 2) und SUID (Wert 4) im oktalen Modus für das Skript test.sh mit der Berechtigung 755 zu setzen, geben Sie ein:

$ chmod 6755 test.sh

Das Ergebnis lautet:

$ ls -lh test.sh
-rwsr-sr-x 1 carol carol 66 Jan 18 17:29 test.sh
Tip

Wenn Ihr Terminal Farben unterstützt, und das tun heute die meisten, sehen Sie unmittelbar, ob die speziellen Berechtigungen gesetzt sind, indem Sie einen Blick auf die Ausgabe von ls -l werfen. Für das Sticky Bit könnte der Verzeichnisname in schwarzer Schrift auf blauem Hintergrund angezeigt werden. Gleiches gilt für Dateien mit den Bits SGID (gelber Hintergrund) und SUID (roter Hintergrund). Die Farben können je nach Linux-Distribution und Terminaleinstellungen variieren.

Geführte Übungen

  1. Erstellen Sie ein Verzeichnis namens emptydir mit dem Befehl mkdir emptydir. Listen Sie nun mit ls die Berechtigungen für das Verzeichnis emptydir auf.

  2. Erzeugen Sie eine leere Datei namens emptyfile mit dem Befehl touch emptyfile. Fügen Sie nun mit chmod im symbolischen Modus Ausführungsberechtigungen für den Eigentümer der Datei emptyfile hinzu und entfernen Sie Schreib- und Ausführungsberechtigungen für alle anderen. Erledigen Sie dies mit nur einem chmod-Befehl.

  3. Wie lauten die Standardberechtigungen für eine Datei, wenn der Wert umask auf 027 gesetzt ist?

  4. Nehmen wir an, eine Datei namens test.sh ist ein Shellskript mit den folgenden Berechtigungen und Besitzverhältnissen:

    -rwxr-sr-x 1 carol root     33 Dec 11 10:36 test.sh
    • Welche Berechtigungen hat der Eigentümer der Datei?

    • Wie lautet die Syntax von chmod in Oktalschreibweise, um die für diese Datei gewährte Sonderberechtigung zu entfernen?

  5. Betrachten Sie folgende Datei:

    $ ls -l /dev/sdb1
    brw-rw---- 1 root disk 8, 17 Dec 21 18:51 /dev/sdb1

    Von welchem Dateityp ist sdb1? Wer ist berechtigt, diese Datei zu schreiben?

  6. Betrachten Sie die folgenden 4 Dateien:

    drwxr-xr-t 2 carol carol 4,0K Dec 20 18:46 Another_Directory
    ----r--r-- 1 carol carol    0 Dec 11 10:55 foo.bar
    -rw-rw-r-- 1 carol carol 1,2G Dec 20 18:22 HugeFile.zip
    drwxr-sr-x 2 carol users  4,0K Jan 18 17:26 Sample_Directory

    Notieren Sie die entsprechenden Berechtigungen für jede Datei und jedes Verzeichnis im Oktalmodus unter Verwendung der 4-stelligen Notation.

    Another_Directory

    foo.bar

    HugeFile.zip

    Sample_Directory

Offene Übungen

  1. Versuchen Sie dies in einem Terminal: Erstellen Sie eine leere Datei namens emptyfile mit dem Befehl touch emptyfile. Nun setzen Sie die Berechtigungen für die Datei mit chmod 000 emptyfile zurück. Was passiert, wenn Sie die Berechtigungen für emptyfile ändern, indem Sie nur einen Wert für chmod im oktalen Modus übergeben, wie beispielsweise chmod 4 emptyfile? Und wenn Sie zwei verwenden, wie in chmod 44 emptyfile? Was können wir über die Art und Weise lernen, wie chmod den numerischen Wert interpretiert?

  2. Betrachten Sie die Berechtigungen für das temporäre Verzeichnis /tmp auf einem Linux-System:

    $ ls -l /tmp
    drwxrwxrwt  19 root root  16K Dec 21 18:58 tmp

    Benutzer, Gruppe und andere haben volle Berechtigungen. Aber kann ein normaler Benutzer beliebige Dateien innerhalb dieses Verzeichnisses löschen? Warum ist dies der Fall?

  3. Eine Datei namens test.sh hat die folgenden Berechtigungen: -rwsr-xr-x, d. h. das SUID-Bit ist gesetzt. Führen Sie nun die folgenden Befehle aus:

    $ chmod u-x test.sh
    $ ls -l test.sh
    -rwSr-xr-x 1 carol carol 33 Dec 11 10:36 test.sh

    Was haben wir getan? Was bedeutet der Großbuchstabe S?

  4. Wie würden Sie ein Verzeichnis mit dem Namen Box erstellen, in dem alle Dateien automatisch Eigentum der Gruppe users sind und nur von dem Benutzer gelöscht werden können, der sie erstellt hat?

Zusammenfassung

In dieser Lektion haben Sie gelernt, wie man mit ls Informationen über Dateirechte erhält (und deutet), wie man mit chmod kontrolliert oder ändert, wer eine Datei erstellen, löschen oder ändern darf (sowohl im oktalen als auch im symbolischen Modus), wie man mit chown und chgrp den Eigentümer von Dateien ändert und wie man mit umask die Maske der Standardrechte für Dateien und Verzeichnisse abfragt und ändert.

Die folgenden Befehle wurden in dieser Lektion besprochen:

ls

Dateien auflisten, optional mit Details wie Berechtigungen.

chmod

Ändern der Berechtigungen einer Datei oder eines Verzeichnisses.

chown

Ändern des besitzenden Benutzers und/oder der Gruppe einer Datei oder eines Verzeichnisses.

chgrp

Ändern der Eigentümergruppe einer Datei oder eines Verzeichnisses.

umask

Abfragen bzw. Setzen der Standardberechtigungsmaske für Dateien und Verzeichnisse.

Lösungen zu den geführten Übungen

  1. Erstellen Sie ein Verzeichnis namens emptydir mit dem Befehl mkdir emptydir. Listen Sie nun mit ls die Berechtigungen für das Verzeichnis emptydir auf.

    Fügen Sie den Parameter -d zu ls hinzu, um die Dateiattribute eines Verzeichnisses zu sehen statt dessen Inhalt aufzulisten. Die Antwort lautet also:

    ls -l -d emptydir

    Bonuspunkte gibt es, wenn Sie die beiden Parameter in einem zusammenfassen, wie in ls -ld emptydir.

  2. Erzeugen Sie eine leere Datei namens emptyfile mit dem Befehl touch emptyfile. Fügen Sie nun mit chmod im symbolischen Modus Ausführungsberechtigungen für den Eigentümer der Datei emptyfile hinzu und entfernen Sie Schreib- und Ausführungsberechtigungen für alle anderen. Erledigen Sie dies mit nur einem chmod-Befehl.

    Stellen Sie sich das so vor:

    • “Für den Benutzer (u), dem die Datei gehört, füge (+) Ausführungsrechte (x) hinzu”, also u+x.

    • “Für die Gruppe (g) und andere Benutzer (o), entferne (-) Schreib- (w) und Ausführungsrechte (x)”, also go-wx.

      Um die beiden Berechtigungssätze zu kombinieren, fügen wir ein Komma zwischen beiden ein. Das Ergebnis lautet also:

      chmod u+x,go-wx emptyfile
  3. Wie lauten die Standardberechtigungen für eine Datei, wenn der Wert umask auf 027 gesetzt ist?

    Die Berechtigungen lauten: rw-r-----

  4. Nehmen wir an, eine Datei namens test.sh ist ein Shellskript mit den folgenden Berechtigungen und Besitzverhältnissen:

    -rwxr-sr-x 1 carol root     33 Dec 11 10:36 test.sh
    • Welche Berechtigungen hat der Eigentümer der Datei?

      Die Berechtigungen für den Besitzer (zweites bis viertes Zeichen in der Ausgabe von ls -l) sind rwx, also lautet die Antwort: “Berechtigt zum Lesen, zum Schreiben und zum Ausführen der Datei.”.

    • Wie lautet die Syntax von chmod in Oktalschreibweise, um die für diese Datei gewährte Sonderberechtigung zu entfernen?

      Wir können die speziellen Berechtigungen aufheben, indem wir als vierte Ziffer 0 an chmod übergeben. Die aktuellen Berechtigungen sind 755, also lautet der Befehl chmod 0755.

  5. Betrachten Sie folgende Datei:

    $ ls -l /dev/sdb1
    brw-rw---- 1 root disk 8, 17 Dec 21 18:51 /dev/sdb1

    Von welchem Dateityp ist sdb1? Wer ist berechtigt, diese Datei zu schreiben?

    Das erste Zeichen in der Ausgabe von ls -l zeigt den Typ der Datei an. b steht für ein Blockgerät, in der Regel eine (interne oder externe) Festplatte, die mit dem Rechner verbunden ist. Der Eigentümer (root) und alle Mitglieder der Gruppe disk können diese Festplatte beschreiben.

  6. Betrachten Sie die folgenden 4 Dateien:

    drwxr-xr-t 2 carol carol 4,0K Dec 20 18:46 Another_Directory
    ----r--r-- 1 carol carol    0 Dec 11 10:55 foo.bar
    -rw-rw-r-- 1 carol carol 1,2G Dec 20 18:22 HugeFile.zip
    drwxr-sr-x 2 carol users 4,0K Jan 18 17:26 Sample_Directory

    Notieren Sie die entsprechenden Berechtigungen für jede Datei und jedes Verzeichnis im Oktalmodus unter Verwendung der 4-stelligen Notation.

    Die entsprechenden Berechtigungen lauten im Oktalmodus wie folgt:

    Another_Directory

    1755. 1 für das Sticky Bit, 755 für die Standardberechtigungen (rwx für den Eigentümer, r-x für die Gruppe und alle anderen).

    foo.bar

    0044. Keine speziellen Berechtigungen (da das erste Zeichen 0 ist), keine Berechtigungen für den Eigentümer (---) und nur Leseberechtigungen (r—​r--) für die Gruppe sowie alle anderen.

    HugeFile.zip

    0664. Keine speziellen Berechtigungen, da das erste Zeichen 0 lautet. 6 (rw-) für den Eigentümer und die Gruppe, 4 (r--) für alle anderen.

    Sample_Directory

    2755. 2 für das SGID-Bit, 7 (rwx) für den Eigentümer, 5 (r-x) für die Gruppe und alle anderen.

Lösungen zu den offenen Übungen

  1. Versuchen Sie dies in einem Terminal: Erstellen Sie eine leere Datei namens emptyfile mit dem Befehl touch emptyfile. Nun setzen Sie die Berechtigungen für die Datei mit chmod 000 emptyfile zurück. Was passiert, wenn Sie die Berechtigungen für emptyfile ändern, indem Sie nur einen Wert für chmod im oktalen Modus übergeben, wie beispielsweise chmod 4 emptyfile? Und wenn Sie zwei verwenden, wie in chmod 44 emptyfile? Was können wir über die Art und Weise lernen, wie chmod den numerischen Wert interpretiert?

    Erinnern Sie sich daran, dass wir die Berechtigungen für emptyfile “auf Null” gesetzt haben. Sein Anfangszustand wäre also:

    ---------- 1 carol carol    0 Dec 11 10:55 emptyfile

    Lassen Sie uns nun den ersten Befehl ausprobieren, chmod 4 emptyfile:

    $ chmod 4 emptyfile
    $ ls -l emptyfile
    -------r-- 1 carol carol 0 Dec 11 10:55 emptyfile

    Die Berechtigungen für andere wurden geändert. Was geschieht, wenn wir es mit zwei Ziffern versuchen, wie in chmod 44 emptyfile?

    $ chmod 44 emptyfile
    $ ls -l emptyfile
    ----r--r-- 1 carol carol 0 Dec 11 10:55 emptyfile

    Nun waren die Berechtigungen für die Gruppe und den Rest der Welt betroffen. Daraus können wir schließen, dass chmod im Oktalmodus den Wert “rückwärts” liest, von der niederwertigsten Stelle (andere) zur höchstwertigen (Benutzer). Wenn Sie eine Ziffer übergeben, ändern Sie die Berechtigungen nur für den Rest der Welt. Mit zwei Ziffern ändern Sie die Berechtigungen für die Gruppe und den Rest der Welt, mit drei Ziffern ändern Sie die Berechtigungen für den Benutzer, die Gruppe und den Rest der Welt, und mit vier Ziffern ändern Sie die Berechtigungen für den Benutzer, die Gruppe, den Rest der Welt und die speziellen Berechtigungen.

  2. Betrachten Sie die Berechtigungen für das temporäre Verzeichnis /tmp auf einem Linux-System:

    $ ls -l /tmp
    drwxrwxrwt  19 root root  16K Dec 21 18:58 tmp

    Benutzer, Gruppe und andere haben volle Berechtigungen. Aber kann ein normaler Benutzer beliebige Dateien innerhalb dieses Verzeichnisses löschen? Warum ist dies der Fall?

    /tmp ist das, was wir ein weltweit beschreibbares Verzeichnis nennen, was bedeutet, dass jeder Benutzer darauf schreiben kann. Aber wir wollen nicht, dass ein Benutzer die von anderen erstellten Dateien durcheinanderbringt, also ist das Sticky Bit gesetzt (wie durch das t bei den Berechtigungen für den Rest der Welt angezeigt). Das bedeutet, dass ein Benutzer Dateien auf /tmp löschen kann, aber nur solche, die er selbst angelegt hat.

  3. Eine Datei namens test.sh hat die folgenden Berechtigungen: -rwsr-xr-x, d. h. das SUID-Bit ist gesetzt. Führen Sie nun die folgenden Befehle aus:

    $ chmod u-x test.sh
    $ ls -l test.sh
    -rwSr-xr-x 1 carol carol 33 Dec 11 10:36 test.sh

    Was haben wir getan? Was bedeutet der Großbuchstabe S?

    Wir haben die Ausführungsrechte für den Benutzer, dem die Datei gehört, entfernt. Das s (oder t) ersetzt das x in der Ausgabe von ls -l, also braucht das System eine Möglichkeit, um anzuzeigen, ob der Benutzer Ausführungsrechte hat oder nicht. Dies geschieht durch die Unterscheidung von Groß- und Kleinschreibung des Sonderzeichens.

    Ein kleines s in der ersten Gruppe von Berechtigungen bedeutet, dass der Benutzer, dem die Datei gehört, über Ausführungsberechtigungen verfügt und dass das SUID-Bit gesetzt ist. Ein großes S bedeutet, dass der Benutzer, dem die Datei gehört, keine Ausführungsberechtigung hat und dass das SUID-Bit gesetzt ist.

    Dasselbe gilt für SGID. Ein kleines s in der zweiten Gruppe von Berechtigungen bedeutet, dass die Gruppe, der die Datei gehört, Ausführungsrechte hat und dass das SGID-Bit gesetzt ist. Ein großes S bedeutet, dass die Gruppe, der die Datei gehört, keine Ausführungsberechtigung hat und dass das SGID-Bit gesetzt ist.

    Dies gilt auch für das Sticky Bit, das durch das t in der dritten Gruppe von Berechtigungen dargestellt wird. Ein kleingeschriebenes t bedeutet, dass das Sticky Bit gesetzt ist und dass andere Benutzer Ausführungsrechte haben. Ein großes T bedeutet, dass das Sticky Bit gesetzt ist und der Rest der Welt keine Ausführungsrechte hat.

  4. Wie würden Sie ein Verzeichnis mit dem Namen Box erstellen, in dem alle Dateien automatisch Eigentum der Gruppe users sind und nur von dem Benutzer gelöscht werden können, der sie erstellt hat?

    Dies ist ein mehrstufiger Prozess. Der erste Schritt besteht darin, das Verzeichnis zu erstellen:

    $ mkdir Box

    Wir möchten, dass jede Datei, die in diesem Verzeichnis erstellt wird, automatisch der Gruppe users zugewiesen wird. Dies können wir erreichen, indem wir diese Gruppe als Eigentümer des Verzeichnisses festlegen und dann das SGID-Bit dafür setzen. Wir müssen auch sicherstellen, dass jedes Mitglied der Gruppe in dieses Verzeichnis schreiben kann.

    Da wir uns nicht um die anderen Berechtigungen kümmern und nur die speziellen Bits ändern wollen, ist es sinnvoll, den symbolischen Modus zu verwenden:

    $ chown :users Box/
    $ chmod g+wxs Box/

    Beachten Sie, dass Sie, wenn Ihr aktueller Benutzer nicht zur Gruppe users gehört, den Befehl sudo vor den obigen Befehlen setzen müssen, um die Änderung als root durchzuführen.

    Nun zum letzten Teil, in dem wir sicherstellen, dass nur der Benutzer, der eine Datei erstellt hat, diese löschen darf. Dies geschieht durch das Setzen des Sticky Bits (dargestellt durch ein t) für das Verzeichnis. Denken Sie daran, dass es bei den Berechtigungen für alle anderen (o) gesetzt ist.

    $ chmod o+t Box/

    Die Berechtigungen für das Verzeichnis Box sollten wie folgt lauten:

    drwxrwsr-t 2 carol users  4,0K Jan 18 19:09 Box

    Natürlich können SGID und das Sticky Bit mit nur einem Aufruf von chmod gesetzt werden:

    $ chmod g+wxs,o+t Box/

    Bonuspunkt, wenn Sie daran gedacht haben.

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Nächste Lektion

104.6 Symbolische und Hardlinks anlegen und ändern (104.6 Lektion 1)

Nächste Lektion lesen

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2023 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2023 The Linux Professional Institute Inc. Alle Rechte vorbehalten.