Wenn Sie ein Linux-Benutzer sind oder ein Webmaster Ihre eigene Website verwaltet (die wahrscheinlich auf einem Linux-Server gehostet wird), werden Sie sicherlich auf eine Situation stoßen, wenn Sie versuchen, eine Datei hochzuladen oder ein Dokument zu ändern und den Fehler " Sie tun habe keine Berechtigungen, um Dateien in den Ordner hochzuladen ". Und nach einigem googlen ist die Lösung oft so einfach wie das Einstellen der Dateiberechtigung auf "775" oder "777". Was genau bedeutet "777"? Und warum muss es "7" sein und nicht "8" oder "9"?

Related : Umbenennen von Dateien in Linux

Grundlegendes zu Dateiberechtigungen

Unix-Systeme (einschließlich Linux und Mac OS X) verfügen über einen Dateiverwaltungsmechanismus, um zu bestimmen, wer auf eine bestimmte Datei oder einen Ordner zugreifen kann und welche Aktionen sie ausführen können. Der Dateiverwaltungsmechanismus besteht aus zwei Teilen, nämlich Klassen und Berechtigungen . Klassen bestimmen, wer auf die Datei zugreifen kann, während die Berechtigung die Art der Aktion bestimmt, die der Benutzer für die Datei ausführen kann.

Es gibt drei Klassen - Eigentümer, Gruppe, Andere.

  • Der Besitzer ist normalerweise der Ersteller der Dateien / Ordner. Unter Linux gehören Dateien oder Ordner, die Sie in Ihrem Home-Verzeichnis erstellt haben, normalerweise zu Ihnen, es sei denn, Sie ändern die Eigentumsrechte ausdrücklich.
  • Die Gruppe enthält eine Gruppe von Benutzern mit denselben Berechtigungen und Benutzerberechtigungen.
  • Andere bedeutet die breite Öffentlichkeit.

Bezüglich der Berechtigungen gibt es drei Arten von Aktionen, die Sie für eine Datei / einen Ordner ausführen können. Sie können entweder lesen, schreiben oder ausführen .

  • Lesen - Sie können nur die Datei anzeigen, aber den Inhalt der Datei nicht ändern. Wenn Sie auf Ordner angewendet werden, können Sie nur die Dateien in dem Ordner anzeigen, aber Sie können keine Dateien aus dem Ordner löschen oder hinzufügen.
  • Schreiben - Sie können die Datei bearbeiten und ändern. Bei Ordnern können Sie Dateien in dem Ordner löschen und hinzufügen.
  • Execute - Execute wird hauptsächlich verwendet, wenn Sie die Datei ausführen müssen (wird häufig verwendet, wenn Sie ein Skript ausführen müssen).

Wenn Sie die Klassen und die Berechtigungen kombinieren, können Sie steuern, wer auf die Datei zugreifen kann und welche Aktionen sie damit ausführen können.

Zum Beispiel hat der Besitzer normalerweise alle Berechtigungen (Lesen, Schreiben und Ausführen), um auf die Datei zuzugreifen. Wenn Sie nicht der Eigentümer der Datei / des Ordners sind, müssen Sie die Eigentümerschaft der Datei in Ihren Namen ändern oder die Berechtigungen von Group oder Others zum Lesen, Schreiben oder Ausführen ändern. Wenn Sie auf einem Webserver keine Datei hochladen können, liegt dies wahrscheinlich daran, dass Sie nicht der Eigentümer des Zielordners sind oder keine ausreichenden Berechtigungen zum Hinzufügen von Dateien zum Ordner erhalten.

Was ist mit der Nummer?

Lassen Sie uns mit dem grundlegenden Verständnis der Klassen und Berechtigungen weiter in sie eintauchen und sehen, wie die "777" oder "775" zustande kommen.

Jede Datei und jeder Ordner enthalten 8-Bit-Daten, die die Berechtigungen steuern. In seiner grundlegenden binären Form wird es "000" sein, was bedeutet, dass keine Berechtigungen irgendeiner Form gewährt werden. Wenn Sie die Berechtigung "Lesen" festlegen, wird den Daten ein 4-Bit-Wert hinzugefügt, der "100" (im Binärformat) oder eine "4" im üblichen Dezimalformat ergibt. Das Setzen einer "Write" Berechtigung wird 2-Bit zu den Daten hinzufügen, wodurch es "010" und "2" in dezimaler Form wird. Schließlich fügt das Setzen einer "Execute" -Berechtigung 1 Bit zu den Daten hinzu, was zu "001" oder "1" in dezimaler Form führt. Zusamenfassend:

  • Lesen entspricht "4".
  • Schreiben entspricht "2".
  • Ausführen entspricht "1"

Wenn wir Berechtigungen festlegen möchten, addieren wir einfach die Nummer. Um beispielsweise die Berechtigungen zum Lesen und Schreiben festzulegen, verwenden wir '6' (4 + 2) für die Berechtigung. Zum Lesen, Schreiben und Ausführen werden wir '7' (4 + 2 + 1) für die Erlaubnis verwenden. Hier ist die unterschiedliche Permutation:

0 - keine Erlaubnis
1 - ausführen
2 - schreiben
3 - schreiben und ausführen
4 - lesen
5 - lesen und ausführen
6 - lesen und schreiben
7 - lesen, schreiben und ausführen

Abhängig von den Berechtigungen, die Sie der Datei gewähren möchten, legen Sie die Nummer entsprechend fest.

Was ist mit den 3 Ziffern "777"? Nun, die erste Ziffer ist dem Besitzer zugewiesen, die zweite Ziffer ist der Gruppe und die dritte Ziffer den Anderen zugewiesen. Für eine Datei mit der Berechtigung '777' kann jeder die Datei lesen, schreiben und ausführen. Hier sind einige der allgemein verwendeten Berechtigungen:

  • 755 - Diese Berechtigung wird häufig im Webserver verwendet. Der Besitzer hat alle Berechtigungen zum Lesen, Schreiben und Ausführen. Alle anderen können nur lesen und ausführen, können jedoch keine Änderungen an der Datei vornehmen.
  • 777 - Jeder kann schreiben und ausführen lesen. Auf einem Webserver ist es nicht ratsam, die Berechtigung "777" für Ihre Dateien und Ordner festzulegen, da jeder Benutzer bösartigen Code zu Ihrem Server hinzufügen kann. In einigen Fällen müssen Sie jedoch die 777-Berechtigungen festlegen, bevor Sie eine Datei auf den Server hochladen können (z. B. Bilder in WordPress hochladen).
  • 644 - Nur der Besitzer kann lesen und schreiben. Jeder andere kann nur lesen. Niemand kann die Datei ausführen.
  • 655 - Nur der Besitzer kann lesen und schreiben, aber nicht die Datei ausführen. Alle anderen können lesen und ausführen, können aber die Datei nicht ändern.

Festlegen von Dateiberechtigungen in der Befehlszeile

Unter Linux können Sie die Dateiberechtigungen leicht ändern, indem Sie mit der rechten Maustaste auf die Datei oder den Ordner klicken und "Eigenschaften" auswählen. Es wird eine Registerkarte "Berechtigungen" geben, auf der Sie die Dateiberechtigungen ändern können. Im Terminal ist der Befehl zum Ändern der Dateiberechtigung " chmod ". Kurz gesagt, "chmod 777" bedeutet, die Datei lesbar, schreibbar und ausführbar zu machen.

 chmod 775 / Pfad / zu / Datei 

Hoffentlich kann dieser Artikel Ihnen helfen, die Dateiberechtigungen im Unix-System und den Ursprung der magischen Zahl "777" besser zu verstehen.

Werde ein Profi bei Linux mit diesem Bundle

Linux ist aufgrund seiner Rechenleistung und unglaublichen Anpassbarkeit das Betriebssystem für Programmierer und Computerfreaks. Aber das macht es auch sehr viel schwieriger, Linux zu lernen, weshalb man in das Linux-Power-User-Bundle investieren sollte. Dieses Kursbündel, das absolut kein Vorwissen erfordert, lehrt Sie von Grund auf, ein Profi bei der Verwendung von Linux zu werden. Für eine begrenzte Zeit kann es für nur $ 19 für Sie sein.