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:
Recht | Bedeutung | Dateien | Verzeichnisse |
r | Lesen | Der 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. |
w | Schreiben | Der Nutzer darf den Inhalt der Datei komplett überschreiben bzw. schreibend verändern. | Nutzer darf weitere Dateien und Verzeichnisse anlegen oder löschen. |
x | Ausführen | Der 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:
Nutzer | Der 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. |
Gruppe | Ebenso wie einem Nutzer kann eine Datei/ ein Verzeichnis einer Nutzergruppe zugeordnet werden. Diese Zuordnung findet meist in der Umgebung eines lokalen Netzwerks Anwendung. |
Öffentlichkeit | Mit 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 | ||||||
|
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.txt | Der Ö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.php | Der Öffentlichkeit und der Nutzergruppe werden die Ausführrechte an upload.php gegeben. |