So verwenden Sie den chmod-Befehl unter Linux

Stilisierte Terminal-Eingabeaufforderung auf einem Linux-Laptop

Fatmawati Achmad Zaenuri/Shutterstock.com



Steuern Sie, wer auf Dateien zugreifen, Verzeichnisse durchsuchen und Skripte ausführen kann, indem Sie |_+_| . von Linux verwenden Befehl. 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.





10 grundlegende Linux-Befehle für Anfänger VERBUNDEN 10 grundlegende Linux-Befehle für Anfänger

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 bestimmen die Berechtigungen, wer |_+_| in das Verzeichnis und wer Dateien innerhalb des Verzeichnisses erstellen oder ändern kann.

Sie verwenden die |_+_| Befehl an Legen Sie jede dieser Berechtigungen fest . Zu Sehen Sie, welche Berechtigungen festgelegt wurden für eine Datei oder ein Verzeichnis können wir |_+_| verwenden.



Dateiberechtigungen anzeigen und verstehen

Wir können die |_+_| . verwenden (langes Format) Option für |_+_| Listet die Dateiberechtigungen für Dateien und Verzeichnisse auf.

chmod

Anzeige

In jeder Zeile identifiziert das erste Zeichen die Art des Eintrags, der aufgelistet wird. Wenn es ein Bindestrich (|_+_|) ist, ist es eine Datei. Wenn es der Buchstabe |_+_| . ist 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 des Benutzers an, dem die Datei gehört ( Nutzerberechtigung ).
  • Die mittleren drei Zeichen zeigen die Berechtigungen für Mitglieder der Datei Gruppe ( Gruppenberechtigungen ).
  • Die letzten drei Zeichen zeigen die Berechtigungen für alle Personen, die nicht in den ersten beiden Kategorien ( 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 |_+_|, |_+_| oder ein |_+_| ist, wurde diese Berechtigung erteilt.

Die Buchstaben stehen für:

  • R : Leseberechtigungen. Die Datei kann geöffnet und ihr Inhalt angezeigt werden.
  • In : 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.

Beispielsweise:

  • |_+_| bedeutet, dass überhaupt keine Berechtigungen erteilt wurden.
  • |_+_| bedeutet, dass volle Berechtigungen erteilt wurden. Die Lese-, Schreib- und Ausführungsindikatoren sind alle vorhanden.

In unserem Screenshot beginnt die erste Zeile mit einem |_+_|. Diese Zeile verweist auf ein Verzeichnis namens archive. Der Eigentümer des Verzeichnisses ist dave, und der Name der Gruppe, zu der das Verzeichnis gehört, heißt auch dave.

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

Anzeige

Der letzte Satz von drei Zeichen ist ebenfalls |_+_|. Diese Berechtigungen gelten für Personen, für die die ersten beiden Berechtigungssätze nicht gelten. Diese Personen (genanntothers) 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 |_+_| . zu verwenden Um Berechtigungen festzulegen, müssen wir es mitteilen:

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

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

Die Who-Werte, die wir verwenden können, sind:

  • du : Benutzer, d. h. der Eigentümer der Datei.
  • g : Gruppe, dh Mitglieder der Gruppe, zu der die Datei gehört.
  • oder : Andere, d. h. Menschen, die nicht von den |_+_| . regiert werden und |_+_| Berechtigungen.
  • zu : All, das heißt alle oben genannten.
Anzeige

Wenn keines davon verwendet wird, |_+_| verhält sich, als ob |_+_| War benutzt worden.

Die 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 |_+_| Option, unten beschrieben.
  • = : Gleichheitszeichen. Legen Sie eine Berechtigung fest und entfernen Sie andere.

Die Werte, die wir verwenden können, sind:

  • R : Die Leseberechtigung.
  • In : Die Schreibberechtigung.
  • x : Die Ausführungsberechtigung.

Berechtigungen festlegen und ändern

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

cd

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

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

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

Wie wäre es mit dem Hinzufügen einer Berechtigung? ohne Entfernen der vorhandenen Berechtigungseinstellungen? Auch das schaffen wir problemlos.

Anzeige

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:

-l

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

ls

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

-

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

d

Berechtigungen für mehrere Dateien festlegen

Wir können Berechtigungen auf mehrere Dateien gleichzeitig anwenden.

Dies sind die Dateien im aktuellen Verzeichnis:

-

Nehmen wir an, 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:

r

Schauen wir uns an, welche Wirkung das hatte:

w

Anzeige

Wie wir sehen, wurde die Leseberechtigung aus den .page-Dateien für die andere Benutzerkategorie entfernt. Andere Dateien sind nicht betroffen.

Hätten wir Dateien in Unterverzeichnisse aufnehmen wollen, hätten wir die |_+_| (rekursive) Option.

x

Numerisches Kürzel

Eine andere Möglichkeit, |_+_| . zu verwenden besteht darin, die Berechtigungen, die Sie dem Eigentümer, 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.

Anzeige

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:

---

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.

rwx

Erweiterte Optionen

wenn du lies die manpage für |_+_| Sie werden sehen, dass es einige erweiterte Optionen in Bezug auf die SETUID- und SETGID-Bits sowie auf das eingeschränkte Löschen oder das Sticky-Bit gibt.

In 99% der Fälle benötigst du |_+_| denn, die hier beschriebenen Optionen werden Sie abgedeckt haben.

Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · Griff · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · Zustand · ls · fstab · rauswerfen · weniger · chgrp · chown · rev · suchen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · SRM
Prozesse alias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · beim · Charge · kostenlos · die · dmesg · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · ja · töten · Schlaf · sudo · seine · Zeit · groupadd · Benutzermod · Gruppen · lshw · stilllegen · neu starten · halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · Locken · wget · Wer · Wer bin ich · In · iptables · ssh-keygen · ufw

VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten

WEITER LESEN Profilfoto von Dave McKay Dave McKay
Dave McKay benutzte zum ersten Mal Computer, als Lochstreifen in Mode waren, und programmiert seitdem. Nach über 30 Jahren in der IT-Branche ist er heute hauptberuflich Technologiejournalist. Im Laufe seiner Karriere war er als freiberuflicher Programmierer, Leiter eines internationalen Softwareentwicklungsteams, Projektleiter für IT-Services und zuletzt als Datenschutzbeauftragter tätig. Sein Schreiben wurde von howtogeek.com, cloudavvyit.com, itenterpriser.com und opensource.com veröffentlicht. Dave ist ein Linux-Evangelist und Open-Source-Verfechter.
Vollständige Biografie lesen

Interessante Artikel