Dateiberechtigungen
Inhaltsverzeichnis
Allgemeines
Unter Linux ist jede Datei und jedes Verzeichnis mit gewissen Berechtigungen versehen. Diese Regeln bestimmen, was mit dieser Datei gemacht werden darf.
Für Dateien die auf AFS-Servern liegen, gelten zusätzlich Access Control Lists (ACL), dafür werden die Berechtigungen für 'group' bzw. 'world' ignoriert. Informationen dazu sind auf der Seite AFS zu finden.
Arten von Berechtigungen
Es gibt für jede Datei drei Arten von Berechtigungen:
- Leserecht (r)
- Schreibrecht (w)
- Ausführrecht (x)
Diese Berechtigungen können für drei Gruppen von Personen vergeben werden:
- (u) User: BesitzerIn der Datei
- (g) Group: Gruppe, der die Datei gehört.
- (o) Others: Alle anderen.
Welche Berechtigungen gelten ist durch Eingabe von ls -l herauszufinden.
$ ls -l total 5 -rw-r--r-- 1 Benutzer stud 27 Nov 29 13:26 berechtigung.txt drwx------ 2 Benutzer stud 2048 Nov 29 13:13 privat drwxr-xr-x 2 Benutzer stud 2048 Nov 29 13:13 public
In der linken Spalte sind die Berechtigungen zu finden. Das erste Zeichen gibt an, um welche Datei es sich handelt (d = Directory), danach folgen die Dateiberechtigungen in der Reihenfolge USER GROUP OTHERS. Für jede Personengruppe werden die oben erwähnten drei Rechte verteilt.
Die Datei berechtigung.txt ist also für user les- und schreibbar, für die Gruppe und andere nur lesbar.
Das Verzeichnis privat ist nur für user lesbar, schreibbar und ausführbar. Ausführbar bedeutet bei Verzeichnissen, dass in diese gewechselt werden darf.
Das Verzeichnis public ist auch für die Gruppe und alle anderen les- und ausführbar.
Ändern von Dateiberechtigungen
Mit dem Dateimanager
Rechtsklick auf die gewünschte Datei -> Properties. Dort können unter der Karteikarte Permissions die Rechte vergeben werden.
In der Shell...
...werden Dateiberechtigungen mit dem Befehl chmod geändert. Man übergibt dabei chmod als erstes Argument, für wen die Rechte gelten sollen (u,g,o,a = all), dann ein + oder - (je nachdem, ob das Recht zugestanden oder genommen wird) und anschließend die Rechte (r,w,x).
Beispiel:
$ ls -l total 0 ---------- 1 Benutzer stud 0 Dec 9 16:52 beispiel.sh
Die Datei beispiel.sh ist komplett rechtlos (nicht sehr realistisch, da beim Anlegen einer Datei Standardwerte für die Berechtigungen gesetzt werden).
$ chmod u+rwx beispiel.sh $ ls -l total 0 -rwx------ 1 Benutzer stud 0 Dec 9 16:52 beispiel.sh
Jetzt darf user alles mit dieser Datei machen.
$ chmod go+rx beispiel.sh $ ls -l total 0 -rwxr-xr-x 1 Benutzer stud 0 Dec 9 16:52 beispiel.sh
Jetzt dürfen Personen, die zur Gruppe stud gehören, und alle anderen die Datei ausführen und lesen.
$ chmod o-x beispiel.sh $ ls -l total 0 -rwxr-xr-- 1 Benutzer stud 0 Dec 9 16:52 beispiel.sh
Jetzt dürfen alle anderen die Datei nur noch lesen, aber nicht mehr ausführen.
Berechtigungen heruntergeladener Dateien
Aus Sicherheitsgründen fehlt jeder Datei, die aus dem Internet heruntergeladen wird, das Ausführrecht. Sie muss also mit
$ chmod u+x <heruntergeladene Datei>
erst ausführbar gemacht werden.