24. April 2024

Rechteverwaltung mit CHMOD

Unter UNIX-Betriebssystemen lassen sich Rechte ganz einfach mit CHMOD verwalten. Diese Rechteverwaltung funktioniert nach einem sehr einfachen Prinzip, sodass jeder Anwender in der Lage ist einzelne Dateien oder Verzeichnisse mit Rechten zu versehen. Dieses System wird hier kurz vorgestellt. Erfahren Sie weiterhin in einem anderen Artikel, wie man die Rechte in der übersichtlichen und einprägsamen Oktalschreibweise darstellt.

Grundlegende Rechte

Zunächst muss festgehalten werden, welche Rechte ein Nutzer überhaupt auf eine Datei oder ein Verzeichnis haben kann. Hier gilt es genau drei verschiedene Rechte zu unterscheiden, die bezogen auf Dateien oder Verzeichnisse unterschiedliche Bedeutung haben:

RechtBedeutungDateienVerzeichnisse
rLesenDer Nutzer darf lesend auf die Datei zugreifen und deren kompletten Inhalt auslesen.Inhalt des Verzeichnisses kann gelesen werden, sprich Dateien und Unterverzeichnisse können aufgelistet werden.
wSchreibenDer Nutzer darf den Inhalt der Datei komplett überschreiben bzw. schreibend verändern.Nutzer darf weitere Dateien und Verzeichnisse anlegen oder löschen.
xAusführenDer Nutzer darf die Datei ausführen.Nutzer darf das Verzeichis betreten.

Rechtegruppen

Ein weiterer wichtiger Punkt bevor man Rechte setzen sollte, ist sich Gedanken über die verschiedenen Nutzergruppen zu machen und welche Rechte man diesen geben will. Je nach Anwendungsgebiet bzw. der Umgebung in der man sich befindet kann das von essentieller Wichtigkeit für die Sicherheit der Daten sein. Dazu später mehr. Zunächst die drei grundlegend zu unterscheidenden Gruppen:

NutzerDer Benutzer selbst, dem die Dateien/Verzeichnisse gehören und der Dateiberechtigungen vergeben darf. Dies ist meist der Fall, wenn der Benutzer die Datei/das Verzeichnis selbst angelegt hat.
GruppeEbenso wie einem Nutzer kann eine Datei/ ein Verzeichnis einer Nutzergruppe zugeordnet werden. Diese Zuordnung findet meist in der Umgebung eines lokalen Netzwerks Anwendung.
ÖffentlichkeitMit der Öffentlichkeit ist tatsächlich der Rest der Welt gemeint, der irgendwie Zugriff auf die Dateien und Verzeichnisse erhalten könnte. Dies mag zunächst unlogisch klingen, bedenkt man allerdings, dass UNIX-Systeme sehr häufig als Webserver verwendet werden liegt es nahe, dass dieser Nutzergruppe eine sehr große Bedeutung zukommt.

Ein Nutzer kann sich also selbst Rechte an seinen eigenen Dateien oder Verzeichnissen nehmen. Das ist sinnvoll, um z.B. wichtige Systemdateien zu schützen, sodass man diese nicht versehentlich überschreibt oder löscht.

Rechte an Dateien und Verzeichnissen  einer Gruppe zu geben macht in einer Arbeitsumgebung sinn in der von mehreren Computern aus in einem Verzeichnis gearbeitet wird. Hier muss natürlich peinlichst darauf geachtet werden Konflike zu vermeiden und der Gruppe nicht zu viele Rechte zu geben.

Die Nutzergruppe Öffentlichkeit ist vor allem bei Webservern interessant. Hier möchte man ja gerade, dass jeder auf die Dateien zugreifen kann und sie z.B. mit seinem Webbrowser betrachten kann. In bestimmten Fällen muss die Öffentlichkeit sogar mehr als nur das Leserecht auf eine Datei oder ein Verzeichnis bekommen. Ein Beispiel ist der Upload von Dateien auf einen Webserver. Hier muss der Administrator sehr genau hinsehen, wenn es darum geht die Rechte richtig zu vergeben, um keine Sicherheitslücken offen zu lassen.

Rechtevergabe

Nun zur eigentlichen Rechtevergabe. Nachdem festgehalten wurde welche Rechte und Nutzer es gibt bleibt noch zu klären, wie diese Rechte Codiert werden. Folgende Tabelle verschafft einen Überblick darüber:

Benutzerrechte
Benutzer Gruppe Öffentlichkeit
r w x r w x r w x

Im Allgemeinen ist ein Rechtevergabebefehl folgendermaßen aufgebaut:

chmod [-R] <Rechte> <Verzeichnis/Datei>

Der Optionale Parameter -R ist vor allem für Verzeichnisse Interessant um die Vergebenen Rechte rekursiv in allen Unterverzeichnissen automatisch zu setzen.

<Rechte>:

Zuerst muss hier genannt werden, wer von der Rechtssetzung betroffen ist:

u: Benutzer

g: Benutzergruppe

o: Öffentlichkeit

a: Alle drei (u,g und o)

Anschließend folgt die Art der Rechtevergabe:

= : Rechte setzen

+ : Rechte hinzufügen

– : Rechte entfernen

und schließlich die drei bekannten Rechte r,w und x.

Beispiele

rw-r–r–Benutzer hat Lese- und Schreibrechte, die Nutzergruppe und die Öffentlichkeit nur das Leserecht. Niemand darf ausführen. (Dies ist kein Befehl zum Setzen der Rechte)
chmod o-rwx geheim.txtDer Öffentlichkeit werden alle Rechte an geheim.txt entzogen. Die Datei ist danach für die Öffentlichkeit unsichtbar.
chmod -R u=r,g=,o= system/Der Nutzer entzieht sich selbst die Schreib- und Ausführrechte am Verzeichnis system. -R steht für rekursiv, sprich alle Unterverzeichnisse werden mit einbezogen. g und o erhalten garkeine Rechte.
chmod go+x upload.phpDer Öffentlichkeit und der Nutzergruppe werden die Ausführrechte an upload.php gegeben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert