So verwenden Sie den chmod-Befehl unter Linux

Steuern Sie mit dem Linux-Befehl chmod, wer auf Dateien zugreifen, Verzeichnisse durchsuchen und Skripte ausführen kann. Dieser Befehl ändert die Linux-Dateiberechtigungen, die auf den ersten Blick kompliziert aussehen, aber eigentlich ziemlich einfach sind, wenn Sie wissen, wie sie funktionieren.

chmod ändert Dateiberechtigungen

Unter Linux wird durch Berechtigungssätze gesteuert, wer was mit einer Datei oder einem Verzeichnis tun darf. Es gibt drei Berechtigungssätze. Ein Satz für den Eigentümer der Datei, ein weiterer Satz für die Mitglieder der Dateigruppe und ein letzter Satz für alle anderen.

Die Berechtigungen steuern die Aktionen, die für die Datei oder das Verzeichnis ausgeführt werden können. Sie erlauben oder verhindern, dass eine Datei gelesen, geändert oder, wenn es sich um ein Skript oder Programm handelt, ausgeführt wird. Für ein Verzeichnis regeln die Berechtigungen, wer in das Verzeichnis cdieren und wer Dateien innerhalb des Verzeichnisses erstellen oder ändern darf.

Sie verwenden den Befehl chmod, um Legen Sie jede dieser Berechtigungen fest. Zu Sehen Sie, welche Berechtigungen festgelegt wurden für eine Datei oder ein Verzeichnis können wir ls verwenden.

Dateiberechtigungen anzeigen und verstehen

Wir können die Option -l (langes Format) verwenden, damit ls die Dateiberechtigungen für Dateien und Verzeichnisse auflistet.

ls -l

In jeder Zeile identifiziert das erste Zeichen die Art des Eintrags, der aufgelistet wird. Wenn es ein Bindestrich (-) ist, handelt es sich um eine Datei. Wenn es der Buchstabe d ist, handelt es sich um ein Verzeichnis.

Die nächsten neun Zeichen repräsentieren die Einstellungen für die drei Berechtigungssätze.

Die ersten drei Zeichen zeigen die Berechtigungen für den Benutzer, dem die Datei gehört (Benutzerberechtigungen).
Die mittleren drei Zeichen zeigen die Berechtigungen für Mitglieder der Gruppe der Datei (Gruppenberechtigungen).
Die letzten drei Zeichen zeigen die Berechtigungen für alle Personen, die nicht zu den ersten beiden Kategorien gehören (andere Berechtigungen).

Jeder Berechtigungssatz enthält drei Zeichen. Die Zeichen sind Indikatoren für das Vorhandensein oder Fehlen einer der Berechtigungen. Sie sind entweder ein Bindestrich (-) oder ein Buchstabe. Wenn das Zeichen ein Bindestrich ist, bedeutet dies, dass die Berechtigung nicht erteilt wurde. Wenn das Zeichen ein r, w oder ein x ist, wurde diese Berechtigung erteilt.

Die Buchstaben stehen für:

r: Leseberechtigungen. Die Datei kann geöffnet und ihr Inhalt angezeigt werden.
w: Schreibberechtigungen. Die Datei kann bearbeitet, geändert und gelöscht werden.
x: Berechtigungen ausführen. Wenn die Datei ein Skript oder ein Programm ist, kann sie ausgeführt (ausgeführt) werden.

  So installieren Sie Solus Linux

Beispielsweise:

— bedeutet, dass überhaupt keine Berechtigungen erteilt wurden.
rwx bedeutet, dass volle Berechtigungen erteilt wurden. Die Lese-, Schreib- und Ausführungsindikatoren sind alle vorhanden.

In unserem Screenshot beginnt die erste Zeile mit einem d. Diese Zeile verweist auf ein Verzeichnis namens „Archiv“. Der Eigentümer des Verzeichnisses ist „dave“, und der Name der Gruppe, zu der das Verzeichnis gehört, wird auch „dave“ genannt.

Die nächsten drei Zeichen sind die Benutzerberechtigungen für dieses Verzeichnis. Diese zeigen, dass der Besitzer über volle Berechtigungen verfügt. Die Zeichen r, w und x sind alle vorhanden. Dies bedeutet, dass der Benutzer dave Lese-, Schreib- und Ausführungsberechtigungen für dieses Verzeichnis hat.

Der zweite Satz von drei Zeichen sind die Gruppenberechtigungen, das sind rx. Diese zeigen, dass die Mitglieder der dave-Gruppe Lese- und Ausführungsrechte für dieses Verzeichnis haben. Das bedeutet, dass sie die Dateien und ihren Inhalt im Verzeichnis auflisten und in dieses Verzeichnis cd (execute) können. Sie haben keine Schreibberechtigung und können daher keine Dateien erstellen, bearbeiten oder löschen.

Der letzte Satz von drei Zeichen ist ebenfalls rx. Diese Berechtigungen gelten für Personen, für die die ersten beiden Berechtigungssätze nicht gelten. Diese Personen (genannt „andere“) haben Lese- und Ausführungsberechtigungen für dieses Verzeichnis.

Zusammenfassend lässt sich sagen, dass Gruppenmitglieder und andere über Lese- und Ausführungsberechtigungen verfügen. Der Besitzer, ein Benutzer namens dave, hat auch Schreibrechte.

Für alle anderen Dateien (außer der Skriptdatei mh.sh) haben dave und Mitglieder der dave-Gruppe Lese- und Schreibeigenschaften für die Dateien, und die anderen haben nur Leseberechtigung.

Für den Sonderfall der Skriptdatei mh.sh haben der Besitzer dave und die Gruppenmitglieder Lese-, Schreib- und Ausführungsberechtigungen und die anderen nur Lese- und Ausführungsberechtigungen.

Die Berechtigungssyntax verstehen

Um chmod zum Festlegen von Berechtigungen zu verwenden, müssen wir es mitteilen:

Wer: Für wen wir Berechtigungen festlegen.
Was: Was verändern wir? Wird die Berechtigung hinzugefügt oder entfernt?
Welche: Welche der Berechtigungen setzen wir?

Wir verwenden Indikatoren, um diese Werte darzustellen, und bilden kurze „Berechtigungsanweisungen“ wie u+x, wobei „u“ „Benutzer“ (wer), „+“ bedeutet hinzufügen (was) und „x“ die Ausführungsberechtigung bedeutet (die).

Die „Wer“-Werte, die wir verwenden können, sind:

u: Benutzer, d. h. der Eigentümer der Datei.
g: Gruppe, dh Mitglieder der Gruppe, zu der die Datei gehört.
o: Andere, d. h. Personen, die nicht den u- und g-Berechtigungen unterliegen.
a: Alle, was alle oben genannten bedeutet.

  So exportieren und importieren Sie Ihre Linux-Systeme unter Windows 10

Wenn keines davon verwendet wird, verhält sich chmod so, als ob „a“ verwendet worden wäre.

Die „Was“-Werte, die wir verwenden können, sind:

-: Minuszeichen. Entfernt die Berechtigung.
+: Pluszeichen. Erteilt die Berechtigung. Die Berechtigung wird zu den vorhandenen Berechtigungen hinzugefügt. Wenn Sie diese Berechtigung und nur diesen Berechtigungssatz haben möchten, verwenden Sie die unten beschriebene Option =.
=: Gleichheitszeichen. Legen Sie eine Berechtigung fest und entfernen Sie andere.

Die „welche“ Werte, die wir verwenden können, sind:

r: Die Leseberechtigung.
w: Die Schreibberechtigung.
x: Die Ausführungsberechtigung.

Berechtigungen festlegen und ändern

Nehmen wir an, wir haben eine Datei, für die jeder volle Berechtigungen hat.

ls -l new_ file.txt

Wir möchten, dass der Benutzer dave Lese- und Schreibberechtigungen hat und die Gruppe und andere Benutzer nur Leseberechtigungen haben. Wir können den folgenden Befehl verwenden:

chmod u=rw,og=r new_file.txt

Die Verwendung des Operators „=“ bedeutet, dass wir alle vorhandenen Berechtigungen löschen und dann die angegebenen festlegen.

Lassen Sie uns die neue Berechtigung für diese Datei überprüfen:

ls -l new_file.txt

Die bestehenden Berechtigungen wurden entfernt und die neuen Berechtigungen wurden wie erwartet festgelegt.

Wie wäre es, eine Berechtigung hinzuzufügen, ohne die vorhandenen Berechtigungseinstellungen zu entfernen? Auch das schaffen wir problemlos.

Nehmen wir an, wir haben eine Skriptdatei, die wir fertig bearbeitet haben. Wir müssen es für alle Benutzer ausführbar machen. Die aktuellen Berechtigungen sehen wie folgt aus:

ls -l new_script.sh

Wir können die Ausführungsberechtigung für alle mit dem folgenden Befehl hinzufügen:

chmod a+x new_script.sh

Wenn wir uns die Berechtigungen ansehen, sehen wir, dass die Ausführungsberechtigung jetzt allen gewährt wird und die bestehenden Berechtigungen noch vorhanden sind.

ls -l new_script.sh

Dasselbe hätten wir auch ohne das „a“ in der „a+x“-Anweisung erreichen können. Der folgende Befehl hätte genauso gut funktioniert.

chmod +x new_script.sh

Berechtigungen für mehrere Dateien festlegen

Wir können Berechtigungen auf mehrere Dateien gleichzeitig anwenden.

Dies sind die Dateien im aktuellen Verzeichnis:

ls -l

Nehmen wir an, wir möchten die Schreibberechtigungen für die „anderen“ Benutzer von Dateien mit der Erweiterung „.page“ entfernen. Wir können dies mit dem folgenden Befehl tun:

chmod o-r *.page

Schauen wir uns an, welche Auswirkungen das hatte:

ls -l

Wie wir sehen, wurde die Leseberechtigung aus den „.page“-Dateien für die Kategorie „andere“ von Benutzern entfernt. Andere Dateien sind nicht betroffen.

  So speichern Sie YouTube-Videos mit der YouTube-DL-GUI unter Linux

Hätten wir Dateien in Unterverzeichnisse aufnehmen wollen, hätten wir die Option -R (rekursiv) verwenden können.

chmod -R o-r *.page

Numerisches Kürzel

Eine andere Möglichkeit, chmod zu verwenden, besteht darin, die Berechtigungen, die Sie dem Besitzer, der Gruppe und anderen erteilen möchten, als dreistellige Zahl bereitzustellen. Die Ziffer ganz links steht für die Berechtigungen des Besitzers. Die mittlere Ziffer repräsentiert die Berechtigungen für die Gruppenmitglieder. Die Ziffer ganz rechts repräsentiert die Berechtigungen für die anderen.

Die Ziffern, die Sie verwenden können und was sie darstellen, sind hier aufgeführt:

0: (000) Keine Berechtigung.
1: (001) Ausführungsberechtigung.
2: (010) Schreibberechtigung.
3: (011) Schreib- und Ausführungsberechtigungen.
4: (100) Leseberechtigung.
5: (101) Lese- und Ausführungsberechtigungen.
6: (110) Lese- und Schreibberechtigungen.
7: (111) Lese-, Schreib- und Ausführungsberechtigungen.

Jede der drei Berechtigungen wird durch eines der Bits im binären Äquivalent der Dezimalzahl dargestellt. 5, also 101 im Binärformat, bedeutet Lesen und Ausführen. 2, was im Binärformat 010 ist, würde die Schreibberechtigung bedeuten.

Mit dieser Methode legen Sie die gewünschten Berechtigungen fest; Sie fügen diese Berechtigungen nicht den vorhandenen Berechtigungen hinzu. Wenn also bereits Lese- und Schreibberechtigungen vorhanden waren, müssten Sie 7 (111) verwenden, um Ausführungsberechtigungen hinzuzufügen. Die Verwendung von 1 (001) würde die Lese- und Schreibberechtigungen entfernen und die Ausführungsberechtigung hinzufügen.

Lassen Sie uns die Leseberechtigung für die „.page“-Dateien für die andere Benutzerkategorie wieder hinzufügen. Wir müssen auch die Benutzer- und Gruppenberechtigungen festlegen, also müssen wir sie auf das setzen, was sie bereits sind. Diese Benutzer haben bereits Lese- und Schreibberechtigungen, also 6 (110). Wir möchten, dass die „anderen“ Lese- und Berechtigungen haben, daher müssen sie auf 4 (100) gesetzt werden.

Der folgende Befehl führt dies aus:

chmod 664 *.page

Dadurch werden die Berechtigungen, die wir für den Benutzer, die Gruppenmitglieder und andere benötigen, auf die erforderlichen Berechtigungen festgelegt. Die Berechtigungen der Benutzer und Gruppenmitglieder werden auf ihre vorherigen Berechtigungen zurückgesetzt, und die anderen haben die Leseberechtigung wiederhergestellt.

ls -l

Erweiterte Optionen

wenn du lies die manpage für chmod werden Sie sehen, dass es einige erweiterte Optionen gibt, die sich auf die SETUID- und SETGID-Bits sowie auf das eingeschränkte Lösch- oder „Sticky“-Bit beziehen.

In 99% der Fälle, für die Sie chmod benötigen, werden Sie mit den hier beschriebenen Optionen abgedeckt.