So verwenden Sie den chmod-Befehl unter Linux


Stilisierte Terminal-Eingabeaufforderung auf einem Linux-Laptop
Fatmawati Achmad Zaenuri/Shutterstock.com

Chmod verwendet drei Hauptargumente: r, w und x, die jeweils für Lesen, Schreiben und Ausführen stehen. Das Hinzufügen oder Entfernen von Kombinationen der Argumente steuert Datei- und Ordnerberechtigungen. Beispielsweise fügt chmod +rwx die Berechtigung zum Lesen, Schreiben und Ausführen von Skripten hinzu. Durch Ausführen von chmod -wx wird die Fähigkeit zum Schreiben und Ausführen entfernt.

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

chmod Ändert Dateiberechtigungen

Wer was mit einer Datei oder einem Verzeichnis machen darf, wird unter Linux durch Berechtigungssätze gesteuert. Es gibt drei Arten von Berechtigungen. Ein Satz für den Eigentümer der Datei, ein weiterer Satz für die Mitglieder der Gruppe der Datei 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 darf cd in das Verzeichnis und wer Dateien innerhalb des Verzeichnisses erstellen oder ändern kann.

Sie verwenden die chmod Befehl zu Legen Sie jede dieser Berechtigungen fest. Zu sehen, welche Berechtigungen gesetzt wurden auf eine Datei oder ein Verzeichnis, können wir verwenden ls.

Anzeigen und Verstehen von Dateiberechtigungen

Wir können die verwenden -l (Langformat) Option zu haben ls Listen Sie die Dateiberechtigungen für Dateien und Verzeichnisse auf.

ls -l

In jeder Zeile identifiziert das erste Zeichen den Eintragstyp, der aufgelistet wird. Wenn es ein Bindestrich ist (-) Es ist eine Datei. Wenn es der Brief ist d es ist 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 in den ersten beiden Kategorien sind (andere Berechtigungen).

In jedem Berechtigungssatz gibt es drei Zeichen. Die Zeichen sind Indikatoren für das Vorhandensein oder Fehlen einer der Berechtigungen. Sie sind entweder ein Bindestrich (-) oder einen Brief. Wenn das Zeichen ein Bindestrich ist, bedeutet dies, dass die Berechtigung nicht erteilt wurde. Wenn das Zeichen ein ist r, woder ein xdiese Erlaubnis wurde erteilt.

Die Buchstaben stehen für:

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

Zum Beispiel:

  • --- bedeutet, dass überhaupt keine Berechtigungen erteilt wurden.
  • rwx bedeutet, dass vollständige Berechtigungen erteilt wurden. Die Lese-, Schreib- und Ausführungsindikatoren sind alle vorhanden.

In unserem Screenshot beginnt die erste Zeile mit a 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, heißt ebenfalls „dave“.

Die nächsten drei Zeichen sind die Benutzerberechtigungen für dieses Verzeichnis. Diese zeigen an, dass der Besitzer volle Berechtigungen hat. Das r, wund x Charaktere sind alle vorhanden. Das 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 r-x. Diese zeigen, dass die Mitglieder der dave-Gruppe Lese- und Ausführungsberechtigungen für dieses Verzeichnis haben. Das heißt, sie können die Dateien und ihren Inhalt im Verzeichnis auflisten, und das können sie cd (Ausführen) in dieses Verzeichnis. Sie haben keine Schreibberechtigung und können daher keine Dateien erstellen, bearbeiten oder löschen.

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

Zusammenfassend haben Gruppenmitglieder und andere also Lese- und Ausführungsberechtigungen. Der Eigentümer, ein Benutzer namens dave, hat ebenfalls Schreibrechte.

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

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

Verständnis der Berechtigungssyntax

Benutzen chmod Um Berechtigungen zu setzen, müssen wir es sagen:

  • Wer: Für wen wir Berechtigungen festlegen.
  • Was: Welche Änderung nehmen wir vor? Fügen wir die Berechtigung hinzu oder entfernen wir sie?
  • Die: Welche der Berechtigungen setzen wir?

Wir verwenden Indikatoren, um diese Werte darzustellen, und bilden kurze „Erlaubniserklärungen“ wie z u+xwobei „u“ für „Benutzer“ (wer), „+“ für Hinzufügen (was) und „x“ für die Ausführungsberechtigung (welche) steht.

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

  • u: Benutzer, dh Eigentümer der Datei.
  • g: Gruppe, dh Mitglieder der Gruppe, zu der die Datei gehört.
  • Ö: Andere, dh Menschen, die nicht von der regiert werden u und g Berechtigungen.
  • a: Alle, bedeutet alle oben genannten.

Wenn nichts davon verwendet wird, chmod verhält sich so, als ob „a” War benutzt worden.

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

  • : Minuszeichen. Entfernt die Berechtigung.
  • +: Pluszeichen. Erteilt die Berechtigung. Die Berechtigung wird zu den bestehenden Berechtigungen hinzugefügt. Wenn Sie diese Berechtigung und nur diesen Berechtigungssatz haben möchten, verwenden Sie die = Option, unten beschrieben.
  • =: 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ührungserlaubnis.

Berechtigungen festlegen und ändern

Nehmen wir an, wir haben eine Datei, auf die jeder volle Zugriffsrechte 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 dies mit dem folgenden Befehl tun:

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 vorhandenen Berechtigungen wurden entfernt und die neuen Berechtigungen wurden wie erwartet festgelegt.

Wie wäre es mit dem Hinzufügen einer Berechtigung ohne Entfernen Sie die vorhandenen Berechtigungseinstellungen? Das können wir auch problemlos.

Nehmen wir an, wir haben eine Skriptdatei, die wir fertig bearbeitet haben. Wir müssen es für alle Benutzer ausführbar machen. Seine aktuellen Berechtigungen sehen so 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 vorhandenen Berechtigungen noch vorhanden sind.

ls -l new_script.sh

Wir hätten dasselbe 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

Angenommen, wir möchten die Leseberechtigungen 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

Lassen Sie uns überprüfen, welche Auswirkungen das hatte:

ls -l

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

Wenn wir Dateien in Unterverzeichnisse einfügen wollten, hätten wir die verwenden können -R (rekursive) Option.

chmod -R o-r *.page

Numerische Kurzschrift

Eine andere Art der Verwendung chmod besteht darin, die Berechtigungen, die Sie dem Besitzer, der Gruppe und anderen erteilen möchten, als dreistellige Zahl anzugeben. Die Ziffer ganz links steht für die Berechtigungen des Eigentümers. 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ührungserlaubnis.
  • 2: (010) Schreibberechtigung.
  • 3: (011) Schreib- und Ausführungsberechtigungen.
  • 4: (100) Leseberechtigung.
  • 5: (101) Lese- und Ausführungsberechtigungen.
  • 6: (110) Lese- und Schreibrechte.
  • 7: (111) Lese-, Schreib- und Ausführungsberechtigungen.

Jede der drei Berechtigungen wird durch eines der Bits im binären Äquivalent der Dezimalzahl dargestellt. Also bedeutet 5, was binär 101 ist, lesen und ausführen. 2, was binär 010 ist, würde die Schreiberlaubnis bedeuten.

Mit dieser Methode legen Sie die Berechtigungen fest, die Sie haben möchten; Sie fügen diese Berechtigungen nicht zu den vorhandenen Berechtigungen hinzu. Wenn also bereits Lese- und Schreibberechtigungen vorhanden wären, 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.

Fügen wir die Leseberechtigung für die „.page“-Dateien für die Benutzer der Kategorie „Sonstige“ wieder hinzu. 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, also müssen sie auf 4 (100) gesetzt werden.

Der folgende Befehl wird dies erreichen:

chmod 664 *.page

Dadurch werden die Berechtigungen, die wir für den Benutzer, die Gruppenmitglieder und andere benötigen, auf das festgelegt, was wir benötigen. Die Berechtigungen der Benutzer und Gruppenmitglieder werden auf die ursprünglichen Werte zurückgesetzt, und die Leseberechtigung der anderen wird wiederhergestellt.

ls -l

Erweiterte Optionen

Wenn du lesen Sie die Manpage zum chmod Sie werden sehen, dass es einige erweiterte Optionen im Zusammenhang mit den SETUID- und SETGID-Bits und dem eingeschränkten Lösch- oder „Sticky“-Bit gibt.

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



source-107

Leave a Reply