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:
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:
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:
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:
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:
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. |