logo

Chmod-Befehl unter Linux/Unix mit Beispielen

Der Linux-Befehl chmod wird verwendet, um die Zugriffsberechtigungen von Dateien und Verzeichnissen zu ändern. Es steht für Modus ändern . Die Berechtigung symbolischer Links kann nicht geändert werden. Es ignoriert sogar die symbolischen Links, die beim rekursiven Verzeichnisdurchlauf auftreten.

Im Linux Im Dateisystem ist jede Datei einem bestimmten Eigentümer zugeordnet und hat Zugriffsrechte für verschiedene Benutzer. Die Benutzerklassen können sein:

  • Eigentümer
  • Gruppenmitglied
  • Andere (Alle anderen)

Die Dateiberechtigungen unter Linux sind die folgenden drei Typen:

  • lesen (r)
  • schreibe (w)
  • ausführen (x)

Kurze Geschichte von Chmod

Zunächst wird der Befehl chmod in AT&T UNIX Version 1 durch den Systemaufruf chmod dargestellt. Die Zugriffskontrolllisten wurden in mehreren Dateisystemen in diese gängigsten Modi integriert, um die Flexibilität zu erhöhen, da die Systeme an Typen und Anzahl der Benutzer zunahmen.

Die in GNU coreutils angeordnete chmod-Version wurde von Jim Meyering und David MacKenzie spezifiziert. Dieser Befehl ist als isoliertes Paket für Microsoft Windows als Element der nativen Win32-Port-Sammlung von UnxUtils mit grundlegenden GNU-Unix-ähnlichen Dienstprogrammen vorhanden. Außerdem wurde der Befehl chmod an das Betriebssystem IBM i ausgeliefert.

Sehen wir uns an, wie Sie die Dateiberechtigung mit dem Befehl chmod ändern.

Syntax:

Javascript-Onload

Die grundlegende Syntax des Befehls chmod lautet wie folgt:

 chmod 

Im Allgemeinen implementierte Optionen sind:

    -R:Es steht für rekursiv, d. h. Objekte zu Unterverzeichnissen hinzufügen.-IN:Es steht für ausführliche Anzeige geänderter Objekte (unveränderte Objekte werden nicht angezeigt).

Das Zielobjekt wird beeinflusst, wenn ein symbolischer Link erwähnt wird. Dateimodi, die sich direkt auf symbolische Links selbst beziehen, werden normalerweise nicht verwendet.

Die Hauptkomponente der chmod-Berechtigung:

Zum Beispiel, rwxr-x---

Alle Dreiergruppen geben Berechtigungen für alle Klassen an:

    rwx:Die drei Zeichen ganz links geben Berechtigungen für den Dateieigentümer (d. h. die Benutzerklasse) an.r-x:Die drei mittleren Zeichen geben Berechtigungen für die Gruppe an, der die Datei gehört (d. h. die Gruppenklasse).---:Die drei Zeichen ganz rechts geben Berechtigungen für die Klasse „Andere“ an. Benutzer, die nicht der Dateieigentümer und Gruppenmitglieder sind, können nicht auf die Datei zugreifen.

Optionen:

Junit-Testfälle

Der Befehl chmod unterstützt die folgenden Befehlszeilenoptionen:

-c, --changes: Sie ähnelt der ausführlichen Option, der Unterschied besteht jedoch darin, dass sie gemeldet wird, wenn eine Änderung vorgenommen wurde.

-f, --silent, --quiet: Es dient zur Unterdrückung der Fehlermeldungen.

-v, --verbose: Es wird verwendet, um eine Diagnose für jede verarbeitete Datei anzuzeigen.

--no-preserve-root: Es wird verwendet, um das Backslash-Symbol ('/') nicht zu behandeln, insbesondere (die Standardeinstellung).

--preserve-root: Wenn diese Option verwendet wird, kann der Backslash ('/') nicht rekursiv ausgeführt werden.

--reference=RFILE: Es wird verwendet, um den Modus der RFILE oder die MODE-Werte anzugeben.

-R, --recursive: Es wird verwendet, um Dateien und Verzeichnisse rekursiv zu ändern.

--helfen: Hiermit wird das Hilfehandbuch mit einer kurzen Beschreibung der Nutzung und der Supportoptionen angezeigt.

--Ausführung: Es dient zur Anzeige der Versionsinformationen.

Dateiberechtigungssyntax

Wenn Sie ein neuer Benutzer sind, könnten Sie mit den verschiedenen Buchstabentypen verwechselt werden, die zum Festlegen der Dateiberechtigung verwendet werden. Bevor wir also mit dem Befehl chmod fortfahren, sollten wir uns mit der Dateiberechtigungssyntax vertraut machen.

Um die Berechtigung einer Datei oder eines Verzeichnisses festzulegen, müssen wir die folgenden Dinge angeben:

  • Wer: Wer wir sind. (Benutzer)
  • Was: Welche Änderung werden wir vornehmen (z. B. das Hinzufügen oder Entfernen der Berechtigung)?
  • Welche: Welche der Berechtigungen?

Die Berechtigungsaussage wird in Indikatoren wie u+x, u-x dargestellt. Dabei steht „u“ für „Benutzer“, „+“ für „Hinzufügen“, „-“ für „Entfernen“ und „x“ für „Ausführbare Datei“ (die).

ReactJS-Karte

Der Benutzerwert kann sein:

u: der Eigentümer der Datei

g: Gruppenmitglied

o: andere

a: alle

Die Berechtigungstypen können r, w und x sein.

Festlegen und Aktualisieren der Berechtigungen

Um die Berechtigung einer Datei festzulegen, führen Sie eine Berechtigungsanweisung mit dem Befehl chmod aus. Beispielsweise möchten wir die Lese- und Schreibberechtigung für alle Benutzer und Gruppen der Datei „Demo.txt“ festlegen. Wir müssen die Berechtigungsanweisung „u=rw,go=rw Demo.txt“ mit dem Befehl chmod übergeben. Um die Dateiberechtigung anzuzeigen, führen Sie den folgenden Befehl aus:

 ls -l Demo.txt 

Der obige Befehl zeigt die aktuelle Dateiberechtigung der Datei „Demo.txt“ an.

Um die Berechtigung zu ändern, führen Sie den folgenden Befehl aus:

 chmod u=rw,go=rw Demo.txt 

Betrachten Sie die folgende Ausgabe:

Linux chmod-Befehl

Aus der obigen Ausgabe geht hervor, dass sich die Zugriffsberechtigung von „Demo.txt“ geändert hat.

Festlegen von Berechtigungen für mehrere Dateien

Mit dem Befehl chmod können wir die Berechtigung für mehrere Dateien gleichzeitig festlegen. Um die Dateiberechtigung mehrerer Dateien zu ändern, geben Sie das Dateimuster mit dem Befehl chmod an. Wenn wir beispielsweise Lese- und Schreibberechtigungen für alle Textdateien festlegen möchten, geben Sie das *. txt-Muster mit dem Befehl chmod.

Um die Berechtigungen aller Textdateien im aktuellen Arbeitsverzeichnis anzuzeigen, führen Sie den folgenden Befehl aus:

 ls -l *.txt 

Es werden alle Textdateien mit ihrem Berechtigungsmodus aufgelistet. Betrachten Sie die folgende Ausgabe:

Linux chmod-Befehl

Aus der obigen Ausgabe geht hervor, dass viele Dateien nur Leseberechtigungen für andere Benutzer haben.

Um die Lese- und Schreibberechtigung für andere Benutzer festzulegen, führen Sie den folgenden Befehl aus:

 chmod o+w *.txt 

Dadurch wird die Lese- und Schreibberechtigung für andere Benutzer der Textdateien festgelegt. Betrachten Sie die folgende Ausgabe:

Linux chmod-Befehl

Numerische Kurzschrift

Wir können die numerischen Werte anstelle von Buchstaben verwenden, um die Berechtigungen anzugeben. Zur Angabe der Berechtigung wird ein dreistelliger Wert verwendet. Die Ziffer ganz links repräsentiert den Eigentümer (u) und die mittlere Ziffer repräsentiert die Gruppenmitglieder (g). Die Ziffer ganz rechts stellt die anderen dar (o).

Die folgende Tabelle stellt die Ziffern und ihre Berechtigungen dar:

Ziffern Berechtigungen
000 Keine Erlaubnis
001 Ausführungsberechtigung
010 Schreiberlaubnis
011 Schreib- und Ausführungsberechtigungen
100 Leseberechtigung
101 Lese- und Ausführungsberechtigungen
110 Lese- und Schreibberechtigungen
111 Lese-, Schreib- und Ausführungsberechtigungen

Symbolische Modi

Außerdem akzeptiert der Befehl chmod die feinkörnigere symbolische Notation, die das Ändern bestimmter Modi ermöglicht. Der symbolische Modus besteht aus drei Elementen, die zu einer einzigen Textzeichenfolge zusammengeführt werden:

 $ chmod [references] [operator] [modes] file... 

Das Programm chmod wendet einen Operator an, um zu definieren, wie die Dateimodi angeordnet werden sollen. Die folgenden Betreiber sind zugelassen:

Operator Beschreibung
+ Es fügt die beschriebenen zu den beschriebenen Klassen hinzu.
- Es entfernt den beschriebenen Modus aus den beschriebenen Klassen.
= Es bedeutet, dass die beschriebenen Modi dieselben Modi für die beschriebenen Klassen erstellen sollen.

Die Modi geben an, welche Berechtigungen den beschriebenen Klassen entzogen oder gewährt werden. Es gibt hauptsächlich drei gängige Modi, die sich auf die allgemeinen Berechtigungen beziehen:

Name Modus Beschreibung
lesen R Es liest eine Datei oder listet den Inhalt eines Verzeichnisses auf.
schreiben In Es schreibt in ein Verzeichnis oder eine Datei.
ausführen X Es rekursiert einen Verzeichnisbaum oder führt eine Datei aus.
spezielle Ausführung X Es handelt sich nicht um eine Berechtigung, sondern kann anstelle von x verwendet werden. Es verwendet die Ausführungsberechtigungen für Verzeichnisse trotz ihrer aktuellen Berechtigungen und verwendet die Ausführungsberechtigungen für eine Datei, für die mindestens ein Ausführungsberechtigungsbit gesetzt ist. Es ist hilfreich, wenn es mit dem Operator „+“ verwendet wird und ohne die Ausführungsberechtigung festzulegen, was passieren würde, wenn wir nur chmod -R a+rx verwenden würden, wohingegen wir chmod -R a+rx implementieren können. eher mit x.

Mehrere Modifikationen können beschrieben werden, indem mehrere symbolische Modi zusammen mit Kommas isoliert werden. Der Befehl chmod überprüft die umask wenn kein Benutzer angegeben ist.

Spezielle Modi

Außerdem kann der Befehl chmod die Sondermodi und zusätzlichen Berechtigungen eines Verzeichnisses oder einer Datei ändern. Die symbolischen Modi verwenden „s“, um die Setgid- und Setuid-Modi anzuzeigen, und „t“, um den Sticky-Modus anzuzeigen. Ein Modus wird nur für die richtigen Klassen verwendet, unabhängig davon, ob andere Klassen erwähnt werden oder nicht.

wie man str in int umwandelt

Fast alle Betriebssysteme unterstützen numerisch die Spezialmodusspezifikation, insbesondere im Oktalformat, einige jedoch nicht. Auf diese Systeme können nur die symbolischen Modi angewendet werden.

Einige Beispiele für die Befehlszeile:

Befehl Beschreibung
chmod a+r publicComments.txt Es wird die Leseberechtigung für jede Klasse hinzugefügt (d. h. Gruppe, Besitzer und andere).
chmod a-x publicComments.txt Dadurch wird die Ausführungsberechtigung für jede Klasse entfernt.
chmod a+rx viewer.sh Es werden die Ausführungs- und Leseberechtigungen für jede Klasse hinzugefügt.
chmod u=rw, g=r, o=internalPlan.txt Es legt die Schreib- und Leseberechtigungen für den Benutzer fest, gewährt Lesezugriff für die Gruppe und verweigert den Zugriff für andere.
chmod -R u+w, go-w Dokumente Dadurch wird die Schreibberechtigung für das Verzeichnis „docs“ und alle seine Inhalte für den Besitzer übernommen und die Schreibberechtigung für andere und die Gruppe gelöscht.
chmod und=rw groupAgreements.txt Es legt die Schreib- und Leseberechtigungen für Gruppe und Benutzer fest.
chmod 664 global.txt Es legt die Schreib- und Leseberechtigungen für Gruppe und Benutzer fest und erteilt die Leseberechtigung an andere.
chmod 744 Show_myCV.sh Es legt die Ausführungs-, Schreib- und Leseberechtigungen für den Benutzer fest und erteilt die Leseberechtigung an die Gruppe und andere.