So verwenden Sie den chmod-Befehl unter Linux

Steuern Sie, wer auf Dateien zugreifen, Verzeichnisse durchsuchen und Skripte ausführen kann, indem Sie die Linux- chmod 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.

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 dies tun kann cd in das Verzeichnis und wer Dateien innerhalb des Verzeichnisses erstellen oder ändern kann.

Sie verwenden die chmod Befehl an Legen Sie jede dieser Berechtigungen fest . Zu Sehen Sie, welche Berechtigungen festgelegt wurden auf einer Datei oder einem Verzeichnis können wir verwenden ls .

Dateiberechtigungen anzeigen und verstehen

Wir können das gebrauchen -l (langes Format) Option zu haben ls Listet die Dateiberechtigungen für Dateien und Verzeichnisse auf.

                      ls -l
                    


In jeder Zeile identifiziert das erste Zeichen die Art des Eintrags, der aufgelistet wird. Wenn es ein Strich ist ( - ) es ist eine Datei. Wenn es der Buchstabe 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 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 Strich ( - ) oder einen Brief. Wenn das Zeichen ein Bindestrich ist, bedeutet dies, dass die Berechtigung nicht erteilt wurde. Wenn der Charakter ein ist r , w , oder ein x , wurde diese Erlaubnis 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.

Zum example:

  • --- 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 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, 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 r , w , und x 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 r-x . 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 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 Charakteren ist auch r-x . 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

Benutzen chmod Um Berechtigungen festzulegen, 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 „Berechtigungserklärungen“ wie u+x , wobei „u“ „Benutzer“ (wer), „+“ bedeutet hinzufügen (was) und „x“ die Ausführungsberechtigung (welche) bedeutet.

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. Menschen, die nicht von der regiert werden u und g Berechtigungen.
  • a: Alle, was alle oben genannten bedeutet.


Wenn keines 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 vorhandenen 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ü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 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
                    

Schauen wir uns an, welche Auswirkungen das hatte:

                      ls -l
                    


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

Hätten wir Dateien in Unterverzeichnisse aufnehmen wollen, hätten wir die -R (rekursive) Option.

                      chmod -R o-r *.page
                    

Numerisches Kürzel

Eine andere Möglichkeit zu verwenden chmod 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 steht für 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 zum chmod Sie werden sehen, dass es einige erweiterte Optionen gibt, die sich auf die SETUID- und SETGID-Bits sowie auf das eingeschränkte Löschen oder das „Sticky“-Bit beziehen.

In 99% der Fälle brauchst du chmod denn, die hier beschriebenen Optionen werden Sie abgedeckt haben.

Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · grep · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · stat · ls · fstab · Echo · weniger · chgrp · chown · rev · aussehen · 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 · bei · Charge · kostenlos · welcher · dmesg · chfn · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · Jawohl · töten · Schlaf · sudo · es ist · Zeit · groupadd · Benutzermod · Gruppen · lshw · abschalten · neu starten · Halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · curl · wget · Wer · Wer bin ich · w · iptables · ssh-keygen · ufw

Beste Linux-Laptops für Entwickler und Enthusiasten

Related Posts