Ich habe in den letzten Monaten an einem Linux-Kurs teilgenommen und ein Aspekt von Linux, der mich immer verwirrt hat, war die Funktionsweise von Berechtigungen. Wenn Sie beispielsweise eine Datei einmal auf meinen Webserver hochladen und einen Fehler erhalten, wurde ich von meinem Webhost aufgefordert, die Dateiberechtigungen auf 755 zu ändern.
Ich hatte keine Ahnung, was das bedeutete, obwohl das Ändern der Berechtigungen das Problem behoben hatte. Ich habe jetzt erkannt, dass Linux-Berechtigungen nicht so kompliziert sind, man muss nur das System verstehen. In diesem Artikel werde ich auf hoher Ebene über Linux-Berechtigungen sprechen und Ihnen zeigen, wie Sie mit dem Befehl chmod die Berechtigungen für Dateien und Ordner ändern.
Linux-Berechtigungen und -Levels
In Linux gibt es im Wesentlichen drei Berechtigungen, um die Sie sich normalerweise sorgen müssen: Lesen, Schreiben und Ausführen. Alle drei sind ziemlich selbsterklärend. Wenn diese Berechtigungen nun auf eine Datei angewendet werden, werden sie in Stufen angewendet.
In Linux gibt es drei Berechtigungsstufen: Besitzer, Gruppe und andere. Der Eigentümer ist der Benutzer, dem die Datei / der Ordner gehört. Die Gruppe schließt andere Benutzer in der Dateigruppe ein und andere repräsentieren nur alle anderen Benutzer, die nicht der Eigentümer oder die Gruppe sind.
Lesen, Schreiben und Ausführen werden entweder als symbolische Zeichen oder als Oktalzahlen dargestellt. Wenn Sie beispielsweise in einem Verzeichnis mit einigen Dateien ein ls -l ausführen, wird die symbolische Zeichendarstellung der Berechtigungen angezeigt.
Die Berechtigungen werden wie folgt geschrieben: Das erste Bit ist entweder ein Bindestrich oder der Buchstabe d. Strich bedeutet es ist eine Datei und d steht für Verzeichnis. Beachten Sie, dass das erste Bit auch ein sein kann l wenn der Dateiname ein Link ist. Als nächstes gibt es drei Gruppen von drei Bits. Das erste Bit in jeder Gruppe dient zum Lesen, das zweite Bit zum Schreiben und das dritte Bit zum Ausführen. Die ersten drei Bits sind für den Besitzer, die zweiten drei Bits für die Gruppe und die dritten drei Bits für andere. Hier ist eine visuellere Erklärung.
Wenn Sie anstelle eines Buchstabens einen Bindestrich sehen, bedeutet dies, dass der Eigentümer, die Gruppe oder alle anderen Benutzer diese Berechtigung nicht haben. Im obigen Beispiel haben der Besitzer, die Gruppe und alle anderen Benutzer Schreib- und Ausführungsberechtigungen.
Wenn Sie sich die Ausgabe des Befehls ls -l ansehen, werden Sie feststellen, dass meine Übungstextdatei die folgenden Berechtigungen hat:
-rw-rw-rw-
Dies bedeutet, dass jeder nur über Lese- und Schreibberechtigungen für die Datei verfügt. Hier ist ein anderes Beispiel:
drwxr - r--
Beim ersten Blick sehen wir, dass die Berechtigungen für ein Verzeichnis gelten. Der Besitzer verfügt über Lese- / Schreib- / Ausführungsberechtigungen, die Gruppe und andere Benutzer haben jedoch nur Leseberechtigung.
Oktalzahl-Darstellung
So werden Berechtigungen in Linux mit Symbolen angezeigt. Die zweite Möglichkeit, dieselben Berechtigungen darzustellen, besteht in der Verwendung von Oktalzahlen. Wenn Sie den Befehl chmod später verwenden, können Sie die Berechtigungen entweder mit Symbolen oder Oktalzahlen ändern.
Wie stellt Linux also das Lesen, Schreiben und Ausführen mit Oktalzahlen dar? Grundsätzlich wird jeder Berechtigung nur eine Nummer zugewiesen, wie unten gezeigt.
Die Leseberechtigung wird durch 4 dargestellt, durch 2 geschrieben und durch 1 ausgeführt. Sie müssen sie nur addieren, um die Oktalberechtigung zu erhalten. Nehmen wir zum Beispiel das obige Beispiel, in dem jeder über alle Berechtigungen verfügt:
-rwxrwxrwx
Der Besitzer hat rwx, also addieren wir 4 + 2 + 1, um einen Wert von 7 zu erhalten. Wir machen das gleiche für die Gruppe und das gleiche für andere. Der letzte Oktalwert ist 777. Schauen wir uns das Beispiel an, bei dem wir nur Lese- / Schreibberechtigungen erteilt haben:
-rw-rw-rw-
Die erste Oktalzahl ist 4 + 2, da wir Lesen und Schreiben hinzufügen. Die zweite ist die gleiche wie die dritte Oktalzahl. Hier haben wir einen endgültigen Oktalwert von 666.
Also versuchen wir es mal anders. Sagen wir, wir möchten wissen, welche Berechtigungen 755 repräsentiert? Nun, es ist ziemlich leicht herauszufinden, ob Sie es nach einzelnen Zahlen aufschlüsseln. Die erste Zahl ist 7, was wir nur durch Addieren von 4 + 2 + 1 erhalten können, was bedeutet, dass der Eigentümer die Berechtigung Lesen / Schreiben / Ausführen besitzt. Fünf können nur durch Hinzufügen von 4 + 1 erhalten werden. Dies bedeutet, dass die Gruppe und andere Benutzer Lese- und Ausführungsberechtigungen haben.
Hoffentlich ist das eine gute Erklärung dafür, wie Berechtigungen in Linux mit Oktalzahlen dargestellt werden. Es ist insgesamt ziemlich unkompliziert.
Chmod zum Ändern von Berechtigungen verwenden
Nun, da wir verstehen, wie Berechtigungen gelesen werden können, wollen wir darüber sprechen, wie wir sie ändern können. Das am einfachsten zu verwendende Dienstprogramm ist der Befehl chmod. So funktioniert das. Der beste Weg, um den Befehl zu erklären, ist ein Beispiel.
Beginnen wir mit den Berechtigungen, über die wir oben gesprochen haben, und zwar:
-rw-rw-rw-
Wenn wir die Ausführungsberechtigung für Besitzer, Gruppe und andere hinzufügen möchten, können wir dies auf zwei Arten tun. Wir könnten die Symbolmethode oder die Oktalmethode verwenden. Für die Symbolmethode würden wir wie folgt vorgehen:
Der genaue Befehl lautet
chmod a + x Dateiname
Die Syntax lautet wie folgt: Der Buchstabe oder die Buchstaben, die den Eigentümer darstellen (u), Gruppe (G), andere (O) oder alle (ein) gefolgt von einem + zum Hinzufügen von Berechtigungen oder a - für die Entnahme von Berechtigungen und dann den Brief für die Erlaubnis (r für lesen w für schreiben und x zum Ausführen).
Im obigen Beispiel habe ich die Ausführungsberechtigung für alle Benutzer hinzugefügt. Das Ergebnis, wie Sie im obigen Screenshot sehen können, ist ein x für Besitzer, Gruppe und andere. Nehmen wir an, ich wollte die Schreib- und Ausführungsberechtigungen nur für die Gruppe und andere Benutzer entfernen.
Wie Sie hier sehen können, habe ich dazu den folgenden Befehl verwendet:
chmod go-wx Dateiname
Da ich die Berechtigungen für die Gruppe und andere ändern möchte, verwende ich den Brief G und der Brief O. Ich möchte Berechtigungen entfernen, also benutze ich die - Zeichen. Schließlich möchte ich die Schreib- und Ausführungsberechtigungen entfernen, also benutze ich w und x. Hier ist eine praktische kleine Tabelle für die Verwendung von Symbolen:
Das ist also alles, um die Symbolmethode zu verwenden. Lassen Sie uns nun über die Oktalmethode sprechen, die ich etwas einfacher finde. Octal ist schön, weil Sie alle Berechtigungen auf einmal hinzufügen oder entfernen können.
Wenn wir mit den folgenden Berechtigungen für eine Datei beginnen, sehen wir uns an, wie wir sie mit der Octal-Methode ändern können:
-rw-rw-rw-
Oben sehen Sie den folgenden Befehl:
chmod 744 Dateiname
Dies bedeutet im Wesentlichen, dass der Besitzer die Berechtigung zum Lesen / Schreiben / Ausführen erhält und die Gruppe und andere nur Leserechte erhalten. Wie Sie sehen, ist es einfach, Berechtigungen mit einem einfachen Befehl hinzuzufügen oder zu entfernen. Machen wir weiter und sagen, ich möchte die Berechtigungen erneut ändern.
Nun habe ich den folgenden Befehl verwendet, wieder einen sehr einfachen:
chmod 640 Dateiname
Hier haben wir dem Besitzer Lese- / Schreibberechtigungen erteilt, der Gruppe nur Leseberechtigung und der anderen Gruppe keine Berechtigungen. Sie verwenden eine Null, um keine Berechtigungen anzuzeigen. Ganz einfach, wie?
Zusammenfassend ist dies ein sehr einfacher Überblick über die Linux-Berechtigungen und kann sehr viel komplizierter werden, aber für Anfänger ist es ein guter Anfang. Ich werde in Zukunft weitere Artikel zu erweiterten Berechtigungen veröffentlichen. Wenn Sie Fragen haben, können Sie dies gerne kommentieren. Genießen!