GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Chmod-Befehl – ​​So ändern Sie Dateiberechtigungen in Linux

Einer der ersten Befehle, die ich unter Linux gelernt habe, war touch Befehl, der eine Datei über die Befehlszeile erstellt.

Wenn Sie jemals versuchen, zum Beispiel eine Textdatei zu erstellen, brauchen Sie nur touch filename.txt einzugeben , drücken Sie die Eingabetaste, und die Datei wird für Sie in dem Verzeichnis erstellt, in dem Sie sich befinden. Sie können dann mit dem Dateieditor Ihrer Wahl schreiben, was Sie wollen.

Bei der Erstellung von Skripten kann es jedoch etwas komplizierter werden. Warum ist das so?

Lassen Sie mich versuchen, Ihnen dies an einem anderen Beispiel zu zeigen. Angenommen, Sie möchten ein Skript mit Touch erstellen. Geben Sie touch example.sh ein , drücken Sie die Eingabetaste, und da haben Sie es. Auch hier können Sie mit einem Dateieditor schreiben.

Wenn alles fertig ist, müssen Sie es nur noch testen. Sie geben ./sample.sh ein und drücken Sie die Eingabetaste, um Ihr Skript in Aktion zu sehen und … aber was sagt mir diese Nachricht?

Warum brauchen wir Berechtigungen?

Ich bin der Administrator! Wie kommt es, dass ich keine Berechtigung habe, ein Skript auszuführen, das ich vor Sekunden selbst geschrieben habe?

Dafür gibt es tatsächlich einen Grund – und ehrlich gesagt sollten die meisten Benutzer dankbar dafür sein, denn wenn Sie Skripte nicht ausführen können, ohne zu wissen, was Sie tun, können Sie Ihr System häufig nicht gefährden.

Lassen Sie uns zuerst kurz über Berechtigungen sprechen. Dann werden wir uns damit befassen, wie man sie ändert.

Um weitere Informationen über Ihre Datei zu erhalten, verwenden wir den Befehl, der die Dateien in einem Verzeichnis auflistet:ls .

Nach der Eingabe von ls und Enter drücken, erhalten wir Folgendes in der Befehlszeile:

Es listet alle sichtbaren Dateien in dem Verzeichnis auf, in dem Sie sich gerade befinden. Durch Hinzufügen des Flags -l Damit erhalten Sie weitere Informationen zu den Dateien im Verzeichnis. Dies ist das Ergebnis, wenn wir ls -l eingeben und drücken Sie die Eingabetaste:

Wir sehen die gleiche(n) Datei(en), aber mit vielen Informationen davor. Am Anfang haben wir eine Folge von zehn Strichen und Buchstaben, die zunächst bedeutungslos erscheinen mögen. Dies ist eigentlich die Zuordnung der Berechtigungen, die Ihre Datei hat.

Das erste Zeichen kann ein Bindestrich sein (- , für eine gemeinsame Datei), ein d (für ein Verzeichnis) oder ein l (für einen Softlink). Der Einfachheit halber werde ich mich auf die einfachen Dateien konzentrieren, obwohl Berechtigungen für alle diese Arten von Dateien/Ordnern gelten.

Nach dem ersten Zeichen können die anderen 9 in Dreiergruppen unterteilt werden. Das erste Trio zeigt die Berechtigungen für den aktuellen Benutzer. Das nächste zeigt die Berechtigungen für diese Gruppe. Die letzten drei sind die Berechtigungen für alle Benutzer, die nicht in diese Kategorie passen.

Konzentrieren wir uns für unsere Erklärung auf die ersten drei Berechtigungen, da wir keine Gruppen oder ähnliches ändern werden.

Das erste Trio sagt rw- .

Zeit zu verstehen, was diese sind. Es gibt drei Dinge, die Sie normalerweise mit einer Datei tun können:sie lesen, hineinschreiben und sie ausführen. Das ist im Grunde das, was diese Buchstaben bedeuten.

Das erste r steht für die Leseerlaubnis. Dann haben wir w für die Schreiberlaubnis. Schließlich ein Bindestrich, was bedeutet, dass alles, was da sein sollte, nicht vorhanden ist. Was dort stehen sollte, ist ein x , steht für ausführbar.

Wenn wir also über den aktuellen Benutzer (ich) sprechen, sind die Berechtigungen, die ich für diese Datei habe, die Lese- und die Schreibberechtigung. Allerdings kann ich die sample.sh nicht ausführen Datei. Aus diesem Grund habe ich beim Versuch, die Datei auszuführen, die Meldung „Zugriff verweigert“ erhalten.

Wie kann ich diese Datei dann ausführen? Dort befindet sich der chmod Befehl ins Spiel kommt.

Was macht chmod?

Nun, ich habe „Berechtigungen“ seit dem Anfang des Artikels erwähnt. Lassen Sie uns diese Erklärung ein wenig erweitern, um zu sagen, dass es sich um „Berechtigungen für den Zugriff auf eine Datei in einem bestimmten Modus handelt . Das bedeutet, dass r bezeichnet die Berechtigung zum Zugriff auf die Datei im Lesemodus, w bezeichnet die Berechtigung zum Zugriff auf die Datei im Schreibmodus und x bezeichnet die Berechtigung zum Zugriff auf die Datei im ausführbaren Modus.

Warum erzähle ich dir das? Wegen des Befehls dreht sich in diesem Artikel alles um ihn. chmod steht für „Änderungsmodus“. Mit anderen Worten, wenn Sie diesen Befehl verwenden, ändern Sie den Modus einer Datei in den Modus, den Sie verwenden möchten.

Wie man Operatoren mit cmod verwendet

Es ist notwendig, einen Operator zu verwenden mit dem chmod-Befehl. Es dient dazu, die Art der Änderung anzugeben, die Sie an den Berechtigungen vornehmen möchten.

Zum Beispiel + ist der Operator, den Sie verwenden, um denjenigen, die die Datei bereits hat, eine Berechtigung hinzuzufügen. - entfernt eine Berechtigung aus der Liste. Es gibt auch den = -Operator, der die Berechtigungen zurücksetzt, damit Sie sie erneut definieren können.

In unserem Fall durch Eingabe von chmod -w sample.sh , worum ich den Befehl bitte, ist, die Schreiberlaubnis zu entfernen. Was ich also tun müsste, um die ausführbare Berechtigung hinzuzufügen, ist, chmod +x sample.sh einzugeben .

Wenn ich jetzt versuche, die Datei auszuführen, wird jetzt das ausgeführt, was ich in das Skript eingebe.

Verwenden von ls -l , das hätte ich jetzt.

Wer bekommt die Erlaubnis?

Etwas anderes, das es wert ist, darauf hinzuweisen, ist, wer diese Erlaubnis erhält. Sie werden sehen, dass das 'x' allen Benutzern, Dateibesitzern, Gruppen und anderen gegeben wird. Wenn dies nicht das ist, was Sie anstreben, ist es vielleicht eine gute Sache, die Ausführungsberechtigung mit chmod -x sample.sh wieder zu entfernen .

Um die Berechtigung nur für den Eigentümer der Datei (in diesem Fall mich) zu aktivieren, sollten wir ein 'u' vor dem '+x' einfügen, etwa so:

chmod u+x sample.sh

Geben Sie ls -l ein , das haben Sie:

Wenn Sie die Berechtigung sowohl für den Eigentümer als auch für seine Gruppe erteilen möchten, lautet der Befehl chmod ug+x sample.sh .

Toll! Ich denke, das deckt das ab, was ich Ihnen zeigen möchte. Es gibt noch andere Dinge, die Sie interessieren könnten, z. B. wie Sie chmod mit oktalen oder binären Werten verwenden, um die Berechtigungen darzustellen. Aber dies sind Modi, die wir verwenden, um die gleichen Ergebnisse zu erzielen, und ich glaube, die Buchstaben sind ein einfacherer Weg, um diese Ergebnisse zu erzielen.

Falls Sie weitere Informationen zu dem Befehl wünschen, können Sie chmod --help eingeben , das Ihnen eine Einweisung in die Möglichkeiten des Befehls gibt. Eine noch detailliertere Beschreibung kann durch Eingabe von man chmod erreicht werden .

Ich hoffe, dieser Artikel war hilfreich für Sie. Weitere Artikel zu Linux-Befehlen finden Sie unter freecodecamp.org/news.

Viel Spaß beim Codieren! 😃


Linux
  1. So speichern Sie die Befehlsausgabe in einer Datei unter Linux

  2. So ändern Sie Berechtigungen und Eigentümer über die Befehlszeile

  3. Linux-Berechtigungen:Eine Einführung in chmod

  4. So verwenden Sie den Befehl chmod (Modus ändern) unter Linux

  5. 5 Beispiele für Linux-Touch-Befehle (So ändern Sie den Dateizeitstempel)

Chown-Befehl in Linux (Dateibesitz ändern)

So ändern Sie Berechtigungen in Linux

Chmod-Befehl unter Linux

Erfahren Sie, wie Sie den Befehl chmod (Modus ändern) unter Linux verwenden

So ändern Sie Dateiberechtigungen

Linux-Chmod-Befehlsbeispiele