Alle Dateien und Verzeichnisse in Linux haben einen Standardsatz von Zugriffsberechtigungen. Diese Zugriffsberechtigungen steuern, wer auf welche Dateien zugreifen kann, und bieten ein grundlegendes Maß an Sicherheit für die Dateien und Verzeichnisse in einem System.
Anzeigeberechtigungen
Um die Berechtigungen für Dateien und Verzeichnisse anzuzeigen, verwenden Sie ls -l oder ls –n Befehle.
# ls -l file -rw-r--r-- 1 root root 0 Nov 19 23:49 file
Das erste Informationsfeld, das vom Befehl ls -l angezeigt wird, ist der Dateityp. Der Dateityp gibt typischerweise an, ob es sich um eine Datei oder ein Verzeichnis handelt. Eine Datei wird durch einen Bindestrich (-) dargestellt. Ein Verzeichnis wird durch den Buchstaben d dargestellt.
Die restlichen Felder stellen die Berechtigungsgruppen dar:Eigentümer, Gruppe, und andere .
Berechtigungsgruppen
Es gibt drei Berechtigungsgruppen:
- Eigentümer
- Gruppe
- Andere
Die Tabelle beschreibt die Berechtigungsgruppen und ihren Geltungsbereich:
Berechtigung | Beschreibung |
---|---|
Eigentümer | Berechtigungen, die vom zugewiesenen Eigentümer der Datei oder des Verzeichnisses verwendet werden |
Gruppe | Berechtigungen, die von Mitgliedern der Gruppe verwendet werden, der die Datei oder das Verzeichnis gehört |
Andere | Berechtigungen, die von allen Benutzern außer dem Dateieigentümer und Mitgliedern der Gruppe verwendet werden, der die Datei oder das Verzeichnis gehört |
Berechtigungssatz
– Jede Berechtigungsgruppe hat drei Berechtigungen, die als Berechtigungssatz bezeichnet werden.
– Jeder Satz besteht aus Lesen , schreiben , und Ausführen Berechtigungen.
– Jede Datei oder jedes Verzeichnis hat drei Berechtigungssätze für die drei Arten von Berechtigungsgruppen.
– Der erste Berechtigungssatz repräsentiert die Besitzerberechtigungen, der zweite Satz repräsentiert die Gruppenberechtigungen und der letzte Satz repräsentiert die anderen Berechtigungen.
– Die Lese-, Schreib- und Ausführungsberechtigungen werden durch die Zeichen r dargestellt , w und x .
– Das Vorhandensein eines dieser Zeichen, z. B. r, zeigt an, dass die jeweilige Berechtigung erteilt wurde.
– Ein Bindestrich (– )-Symbol anstelle eines Zeichens in einem Berechtigungssatz zeigt an, dass eine bestimmte Berechtigung verweigert wird.
– Linux weist anfängliche Berechtigungen automatisch zu, wenn eine neue Datei oder ein neues Verzeichnis erstellt wird.
Berechtigung | Zugriff für eine Datei | Zugriff für ein Verzeichnis |
---|---|---|
Lesen (r) | Sie können Dateiinhalte anzeigen und die Datei kopieren. | Sie können den Inhalt des Verzeichnisses mit dem Befehl ls auflisten. |
Schreibe (w) | Sie können den Dateiinhalt ändern. | Sie können den Inhalt eines Verzeichnisses ändern, indem Sie beispielsweise eine Datei löschen. Dazu müssen Sie auch über die Ausführungsberechtigung verfügen. |
Führe (x) aus | Sie können die Datei ausführen, wenn es sich um eine ausführbare Datei handelt. Sie können ein Shell-Skript ausführen, wenn Sie auch über Lese- und Ausführungsberechtigungen verfügen. | Sie können den cd-Befehl verwenden, um auf das Verzeichnis zuzugreifen. Wenn Sie auch über Lesezugriff verfügen, können Sie den Befehl ls -l für das Verzeichnis ausführen, um den Inhalt aufzulisten. Wenn Sie keinen Lesezugriff haben, können Sie den Befehl ls ausführen, solange Sie den Dateinamen kennen. |
Dateieigentum
Jede Datei gehört einem bestimmten Benutzer (oder UID) und einer bestimmten Gruppe (oder GID). Der Chown Der Befehl kann verwendet werden, um nur den Benutzer oder den Benutzer und die Gruppe einer Datei zu ändern. Hier ist ein Beispiel für die Änderung des Besitzers der Datei test in user und ihrer Gruppe in user.
# ls -l test -rw-r--r-- 1 root root 0 Nov 20 00:43 test
# chown user:user test
# ls -l test -rw-r--r-- 1 user user 0 Nov 20 00:43 test
Das grundlegende Format für den Befehl chown ist wie folgt:
# chown user:group filename
Ein Punkt (.) kann anstelle des Doppelpunkts (:) verwendet werden Trennzeichen. Außerdem kann entweder der Benutzer- oder der Gruppenname weggelassen werden. Wenn der Benutzername weggelassen wird (aber das Trennzeichen vorhanden ist), verhält sich der chown-Befehl wie der chgrp Befehl, und nur der Gruppenbesitz wird geändert. Wenn der Gruppenname weggelassen wird (aber das Trennzeichen vorhanden ist), wird die Gruppe auf die Anmeldegruppe des angegebenen Benutzers festgelegt. Wenn sowohl der Gruppenname als auch das Trennzeichen weggelassen werden, wird nur der Benutzername geändert. Beispiel:, um nur den Eigentümer zu ändern, könnten Sie Folgendes ausführen:
# chown user filename
Ein alternativer Befehl, um nur die Gruppe einer Datei zu ändern, ist der Befehl chgrp. Zum Beispiel:
# chgrp group filename
Der Befehl chgrp wird häufig von normalen Benutzern verwendet, um den Gruppenbesitz ihrer Dateien zu ändern. Der Befehl chown wird normalerweise nur vom Root-Benutzer verwendet.
Standardgruppenbesitz
Jeder Benutzer kann Mitglied vieler Gruppen sein (aufgelistet in der Datei /etc/group unter mehreren Gruppen). Nur eine Gruppe ist die primäre Gruppe eines Benutzers (aufgelistet im Benutzereintrag in /etc/password). Wenn ein Benutzer eine Datei erstellt, gehört die Datei standardmäßig der primären Gruppe des Benutzers. Wenn sie möchten, dass die Datei einer ihrer anderen Gruppen gehört, müssen sie chgrp verwenden Befehl zum Ändern der Gruppenmitgliedschaft. Zum Beispiel:
$ id uid=1001(user) gid=1001(user) groups=1001(user),10(wheel)
$ touch file
$ ls -lrt file -rw-rw-r-- 1 user user 0 Nov 20 00:52 file
Wie oben gezeigt, erhält die neu erstellte Datei (Datei) automatisch die Gruppe „Benutzer“.
Datei- und Verzeichnisberechtigungen
Unten sehen Sie eine Beispielausgabe von ls -l Befehl; Sie können am ersten Zeichen jeder Zeile sehen, dass dir1 und dir2 Verzeichnisse sind (gekennzeichnet durch das d ) und dass file1 und file2 eine normale Datei sind (gekennzeichnet durch – ).
$ ls -l total 0 drwxrwxr-x 2 user user 6 Nov 20 00:55 dir1 drwxrwxr-x 2 user user 6 Nov 20 00:55 dir2 -rw-rw-r-- 1 user user 0 Nov 20 00:55 file1 -rw-rw-r-- 1 user user 0 Nov 20 00:55 file2
Die nächsten neun Zeichen zeigen die Berechtigungen der Datei für Benutzer, Gruppen und andere (oder alle anderen) wie unten gezeigt, wobei der Übersichtlichkeit halber Klammern hinzugefügt wurden:
-(rw-)(rw-)(r--) 1 user user 0 Nov 20 00:55 file1
Jetzt hat der Eigentümer Lese- und Schreibrechte (rw-), die Gruppe hat Lese- und Schreibrechte (rw-) und alle anderen haben nur Leserechte (r–). Dies wird als symbolische Repräsentation bezeichnet weil Buchstaben wie r, w und x verwendet werden, um Berechtigungen anzugeben.
Berechtigungen können auch numerisch dargestellt werden:
r = 4; w = 2; x = 1
Fügen Sie jeden Abschnitt hinzu, sodass die Berechtigungen der Dateimeta (aus dem obigen Beispiel) 664 wären. Hier ist eine andere Möglichkeit, um zu sehen, wie wir zu dieser Zahl kommen:
-(rw-)(rw-)(r--) -(42-)(42-)(4--) 664
Das Hinzufügen der Zahlen in jedem Abschnitt führt zu Berechtigungen von 664.
Dateiberechtigungen ändern
Der Befehl chmod wird verwendet, um die Berechtigungen einer Datei zu ändern. Es kann verwendet werden, um Berechtigungen symbolisch hinzuzufügen oder zu entfernen. Um beispielsweise Ausführungsberechtigungen für den Eigentümer einer Datei hinzuzufügen, würden Sie Folgendes ausführen:
$ chmod u+x file_name
Oder um Lese- und Schreibberechtigungen für die Gruppe hinzuzufügen, der die Datei gehört, würden Sie Folgendes ausführen:
$ chmod g+rw file_name
Anstatt Berechtigungen hinzuzufügen, kann die symbolische Syntax von chmod auch verwendet werden, um einen absoluten Wert zu subtrahieren oder auf einen bestimmten Wert zu setzen, wie in diesen Beispielen gezeigt:
$ chmod o-w file_name $ chmod u=rwx,g=rx,o= file_name
Der Befehl chmod kann Berechtigungen auch explizit mithilfe einer numerischen Darstellung festlegen. Um beispielsweise Berechtigungen für eine Datei auf rwxrwxr– zu setzen, würden Sie Folgendes ausführen:
$ chmod 774 file_name
Zusätzlich zu den standardmäßigen Lese-, Schreib- und Ausführungsberechtigungen kann chmod auch spezielle Berechtigungen setzen. Dies sind das Setuid-Bit, das Setgid-Bit und das Sticky-Bit. Die folgenden Beispiele zeigen das Festlegen jeder dieser speziellen Berechtigungen zusammen mit einer kurzen Beschreibung der Auswirkungen dieser Berechtigungen.
$ chmod u+s file_name
Fügt die setuid hinzu Bit, sodass diese Datei, falls sie ausführbar ist, mit den Berechtigungen ihres Eigentümers ausgeführt wird.
$ chmod g+s file_name
Fügt die setgid hinzu Bit, sodass diese Datei, falls sie ausführbar ist, mit den Berechtigungen ihrer Gruppe ausgeführt wird. Wenn dies für ein Verzeichnis festgelegt wird, haben alle im Verzeichnis erstellten Dateien dieselbe Gruppe wie das Verzeichnis.
$ chmod o+t directory_name
Fügt das Sticky-Bit hinzu damit Benutzer nur Dateien aus diesem von ihnen erstellten Verzeichnis löschen können.