4Jul

Wie funktionieren Linux-Dateiberechtigungen?

Wenn Sie schon länger mit Linux arbeiten( und sogar mit OS X), sind Sie wahrscheinlich auf einen "Berechtigungsfehler" gestoßen. Aber was genau sind sie und warum sind sie notwendig oder nützlich? Werfen wir einen Blick ins Innere.

Benutzerberechtigungen

Früher waren Computer riesige Maschinen, die unglaublich teuer waren. Um das Beste aus ihnen herauszuholen, wurden mehrere Computerterminals angeschlossen, die es vielen Benutzern ermöglichten, gleichzeitig ihren Geschäften nachzugehen. Die Datenverarbeitung und -speicherung erfolgte auf der Maschine, während die Terminals selbst kaum mehr als ein Mittel zum Betrachten und Eingeben von Daten waren. Wenn Sie darüber nachdenken, ist es genau so, wie wir auf Daten in der "Cloud" zugreifen. Sehen Sie sich das Amazon Cloud-MP3-System, Gmail und Dropbox an, und Sie werden feststellen, dass Änderungen zwar lokal vorgenommen werden können, aber alles remote gespeichert wird.

( Bild: Zenith Z-19 "dumm" Terminal; Kredit: Ajmexico)

Damit dies funktioniert, müssen einzelne Benutzer Konten haben. Sie müssen einen Teil des ihnen zugewiesenen Speicherbereichs haben, und sie müssen Befehle und Programme ausführen können. Jeder erhält bestimmte "Benutzerberechtigungen", die vorschreiben, was sie tun können und was nicht, wo auf dem System sie arbeiten und auf die sie keinen Zugriff haben und welche Dateien sie nicht ändern können und dürfen. Jeder Benutzer wird auch in verschiedene Gruppen eingeteilt, die weiteren Zugriff gewähren oder einschränken.

Dateizugriff

In dieser verrückten Multi-User-Welt haben wir bereits Grenzen gesetzt, was Benutzer tun können. Aber was ist mit was sie zugreifen? Nun, jede Datei hat eine Reihe von Berechtigungen und einen Besitzer. Die Eigentümerbezeichnung, die normalerweise bei der Erstellung der Datei gebunden wird, gibt an, welchem ​​Benutzer sie angehört, und nur dieser Benutzer kann seine Zugriffsberechtigungen ändern.

In der Welt von Linux sind Berechtigungen in drei Kategorien unterteilt: Lesen, Schreiben und Ausführen. Der "Lesezugriff" erlaubt es einem, den Inhalt einer Datei anzuzeigen, der "Schreibzugriff" ermöglicht es einem, den Inhalt einer Datei zu ändern, und "Ausführen" ermöglicht es einem, eine Reihe von Anweisungen auszuführen, wie ein Skript oder ein Programm. Jede dieser Kategorien wird auf verschiedene Klassen angewendet: Benutzer, Gruppe und Welt."Benutzer" bedeutet den Eigentümer, "Gruppe" bedeutet jeden Benutzer, der sich in der gleichen Gruppe wie der Besitzer befindet, und "Welt" bedeutet jeden und jeden.

Ordner können auch mit diesen Berechtigungen eingeschränkt werden. Sie können beispielsweise anderen Personen in Ihrer Gruppe das Anzeigen von Verzeichnissen und Dateien in Ihrem Benutzerordner gestatten, jedoch nicht für Personen außerhalb Ihrer Gruppe. Wahrscheinlich möchten Sie den Schreibzugriff nur auf sich selbst beschränken, es sei denn, Sie arbeiten an einem freigegebenen Projekt. Sie können auch ein freigegebenes Verzeichnis erstellen, mit dem jeder Dateien in diesem Ordner anzeigen und ändern kann.

Ändern von Berechtigungen in Ubuntu

GUI

Um die Berechtigungen einer Datei, die Sie in Ubuntu besitzen, zu ändern, klicken Sie einfach mit der rechten Maustaste auf die Datei und gehen Sie zu "Eigenschaften".

Sie können ändern, ob der Besitzer, die Gruppe oder andere lesen und schreiben können. Nur lesen oder nichts tun. Sie können auch ein Kästchen markieren, um die Ausführung der Datei zu erlauben, und dies wird für den Eigentümer, die Gruppe und andere gleichzeitig aktiviert.

Befehlszeile

Sie können dies auch über die Befehlszeile tun. Wechseln Sie in ein Verzeichnis, in dem Dateien enthalten sind, und geben Sie den folgenden Befehl ein, um alle Dateien in einer Liste anzuzeigen:

ls -al

Neben jeder Datei und jedem Verzeichnis sehen Sie einen speziellen Abschnitt, in dem die Berechtigungen aufgeführt sind. Es sieht so aus:

-rwxrw-r-

Das r steht für "lesen", das w steht für "schreiben", und das x steht für "execute." Verzeichnisse werden mit einem "d "statt a" - ".Sie werden auch bemerken, dass es 10 Leerzeichen gibt, die Wert haben. Sie können die erste ignorieren, und dann gibt es 3 Sätze von 3. Der erste Satz ist für den Besitzer, der zweite Satz ist für die Gruppe und der letzte Satz ist für die Welt.

Um die Berechtigungen einer Datei oder eines Verzeichnisses zu ändern, sehen wir uns die Grundform des Befehls chmod an.

chmod [Klasse] [Operator] [Erlaubnis] Datei

chmod [ugoa] [+ oder -] [rwx] Datei

Das mag auf den ersten Blick kompliziert erscheinen, aber vertrau mir, es ist ziemlich einfach. Betrachten wir zuerst die Klassen:

  • u: Dies ist für den Besitzer.
  • g: Dies ist für die Gruppe.
  • o: Das ist für alle anderen.
  • a: Dies ändert die Berechtigungen für alle oben genannten Punkte.

Als nächstes die Operatoren:

  • +: Das Pluszeichen fügt die folgenden Berechtigungen hinzu.
  • -: Das Minuszeichen entfernt die folgenden Berechtigungen.

Immer noch mit mir? Und der letzte Abschnitt ist der gleiche wie wenn wir die Berechtigungen einer Datei geprüft haben:

  • r: Erlaubt Lesezugriff.
  • w: Erlaubt Schreibzugriff.
  • x: Erlaubt die Ausführung.

Nun, lasst es uns zusammensetzen. Nehmen wir an, wir haben eine Datei namens "todo.txt", die folgende Berechtigungen hat:

-rw-rw-r-

Das heißt, der Besitzer und die Gruppe können lesen und schreiben, und die Welt kann nur lesen. Wir möchten die Berechtigungen für diese ändern:

-rwxr--

Das heißt, der Besitzer hat vollständige Berechtigungen und die Gruppe kann lesen. Wir können dies in 3 Schritten tun. Zuerst fügen wir die Ausführungsberechtigung für den Benutzer hinzu.

chmod u + x todo.txt

Dann entfernen wir die Schreibberechtigung für die Gruppe.

chmod g-w todo.txt

Zum Schluss werden wir die Leseberechtigungen für alle anderen Benutzer entfernen.

chmod o-r todo.txt

Wir können diese auch in einem Befehl kombinieren:

chmod u + x, gw, o-r todo.txt

Sie können sehen, dass jeder Abschnitt durch Kommas getrennt ist und keine Leerzeichen vorhanden sind.

Hier sind einige nützliche Berechtigungen:

  • -rwxr-xr-x: Besitzer hat volle Berechtigungen, Gruppen und andere Benutzer können Dateiinhalte lesen und ausführen.
  • -rwxr-r-: Besitzer hat volle Berechtigungen, Gruppe und andere Benutzer können nur Datei lesen( nützlich, wenn Sie andere nicht stören Ihre Dateien anzeigen.
  • -rwx--: Besitzer hat volle Berechtigungen, alle anderen haben keine( nützlichfür persönliche Skripte.)
  • -rw-rw--: Besitzer und Gruppe können lesen und schreiben( nützlich für die Zusammenarbeit mit Gruppenmitgliedern)
  • -rw-r-r-: Besitzer kann lesen und schreiben, Gruppe und andere Benutzer können nurDatei lesen( nützlich zum Speichern von persönlichen Dateien in einem gemeinsamen Netzwerk)
  • -rw ---: Der Besitzer kann lesen und schreiben, alle anderen haben keine( nützlich zum Speichern von persönlichen Dateien)

Es gibt noch ein paar andere Dinge, die Sie tun könnenchmod - wie setuid und setgid - aber sie sind ein wenig in die Tiefe und die meisten Benutzer werden sie nicht wirklich brauchen

Die Root oder Super-User und Systemdateien

Heutzutage laufen nicht immer Systeme, dieHaben Sie mehrere Benutzer. Warum sollten wir uns noch um Berechtigungen kümmern?

Nun, Unix undSeine Derivate - unter anderem Linux, OS X - unterscheiden auch zwischen Dingen, die vom Benutzer ausgeführt werden, Dingen, die von einem Administrator ausgeführt werden oder mit Administratorrechten, und Dingen, die vom System selbst ausgeführt werden. Daher müssen Dinge, die integral für das System sind, Administratorrechte haben, die geändert oder auf die zugegriffen werden kann. Auf diese Weise vermeidest du nichts versehentlich.

Um in Ubuntu Änderungen an Systemdateien vorzunehmen, verwenden Sie "sudo" oder "gksudo", um Administratorrechte zu erhalten. In anderen Distributionen wechseln Sie zu "root" oder dem "super-user", der das gleiche tut, bis Sie sich abmelden.

Beachten Sie, dass das Ändern von Dateiberechtigungen in beiden Fällen dazu führen kann, dass Programme nicht funktionieren und der Eigentümer der Datei unbeabsichtigt den Root-Benutzer( und nicht den Eigentümer) ändert und das System weniger sicher macht( indem mehr Berechtigungen erteilt werden).Daher wird empfohlen, die Berechtigungen für Dateien - insbesondere Systemdateien - nicht zu ändern, es sei denn, dies ist erforderlich oder Sie wissen, was Sie tun.

Dateiberechtigungen sind vorhanden, um ein grundlegendes Sicherheitssystem für Benutzer bereitzustellen. Wenn Sie lernen, wie sie funktionieren, können Sie die grundlegende Freigabe in einer Umgebung mit mehreren Benutzern einrichten, "öffentliche" Dateien schützen und einen Hinweis darauf geben, wann mit dem Besitz der Systemdatei etwas schief geht.

Sie können die Dinge leichter erklären? Haben Sie eine Korrektur? Möchten Sie an die alten Zeiten erinnern? Mach eine Pause und schreib deine Gedanken in die Kommentare.