Linux/Dateirechte
Da Linux ein Multiuserbetriebssystem ist, und damit mehrere Benutzer Zugriff auf das System haben können, ist es wichtig, dass für jede Resource (z. B. Dateien, Verzeichnisse oder auch Geräte) Rechte vergeben werden können.
Dafür gibt es unter Linux eine Benutzer- und eine Nutzergruppentabelle. Jede Ressource hat einen Besitzer (also einen einzelnen Benutzer, dem die Datei „gehört“) und eine Gruppe (eine Nutzergruppe, für die spezielle Rechte gelten). Einzelne Zugriffsrechte, nämlich Leserecht, Schreibrecht und Ausführrecht, werden für Besitzer, Gruppen und alle übrigen Benutzer („Rest der Welt“) vergeben.
Inhaltsverzeichnis
Da Sie auf dem Server eines Providers meistens nicht die Möglichkeit haben bzw. brauchen, die Besitzverhältnisse einer Datei zu verändern, wird hier nur auf den Befehl zum Verändern der Zugriffsrechte eingegangen.
Kommando | Abkürzung | Erläuterung |
---|---|---|
chmod | change mode | Zugriffsrechte einer Datei ändern |
you@dort:~/featureartikel$ ls -l script.pl<ENTER>
-rw-r--r-- 1 you wwwusr 136 Feb 2 23:50 script.pl
you@dort:~/featureartikel$ chmod 755 script.pl<ENTER>
you@dort:~/featureartikel$ ls -l script.pl<ENTER>
-rwxr-xr-x 1 you wwwusr 136 Feb 2 23:50 script.pl
you@dort:~/featureartikel$
Mit dem Kommando ls -l
können Sie die aktuellen Zugriffsrechte einer Datei ausgeben lassen. Diese stehen gleich in der ersten Spalte der Ausgabe. Im obigen Beispiel sind sie bei der Datei script.pl
zu Beginn -rw-r--r--
. Diese Kette aus zehn Zeichen gibt detailliert Auskunft über die Zugriffsrechte der Datei. Das erste Zeichen gibt den Typ an und kann z. B. "d" für directory (engl. Verzeichnis) annehmen. Die anderen sind immer in Dreiergruppen zu lesen, welche Lese-, Schreib- und Ausführungsrecht für den Besitzer (erste Dreiergruppe), die Gruppe (zweite) und alle anderen Benutzer (dritte) angeben.
Der Aufruf von chmod 755 script.pl
bedarf einer genaueren Erklärung. Bei der dreistelligen Zahl handelt es sich um eine Oktalzahl, die die Rechtevergabe für alle Nutzergruppen widerspiegelt (je Gruppe eine Stelle). Nachfolgend wird das System erklärt um für die gewünschten Rechte die richtige Zahl zu ermitteln.
Ermittlung der Zahl für Dateirechte
Jedes Recht (Ausführen, Schreiben, Lesen) hat eine eigene Ziffer:
Ziffer | Recht |
---|---|
4 | Lesen |
2 | Schreiben |
1 | Ausführen |
Wollen Sie ein bestimmtes Recht einer Nutzergruppe hinzufügen, so müssen Sie nur die entsprechende Ziffer zur Stelle der Nutzergruppe addieren. Das Lese- und Schreibrecht für den Besitzer der Datei wird z. B. durch 4 + 2 = 6
an der ersten Stelle gesetzt. Durch die Addition einer der drei Ziffern können also Ziffern von 0 bis 7 entstehen, deren Zuordung zu einer Rechtekombination immer eindeutig ist:
Ziffer | Rechte | Ermittlung |
---|---|---|
0 | keine Rechte | - |
1 | nur ausführen | 0 + 1 |
2 | nur schreiben | 0 + 2 |
3 | schreiben und ausführen | 0 + 1 + 2 |
4 | nur lesen | 0 + 4 |
5 | ausführen und lesen | 0 + 1 + 4 |
6 | schreiben und lesen | 0 + 2 + 4 |
7 | lesen, schreiben und ausführen | 0 + 1 + 2 + 4 |
Das Beispiel chmod 755 script.pl
hat also für den Besitzer alle Rechte und für die Gruppe und alle anderen Benutzer das Lese- und Ausführungsrecht gesetzt. Dies ist die Standardkombination für CGI-Skripten.
Bei einzelnen Dateien (z. B. Perl- oder PHP-Scripte) bewirkt das Attribut „Ausführen“ tatsächlich die Ausführbarkeit im Rahmen des Betriebssystems sowie den entsprechenden Interpretern. Etwas anders sieht es jedoch bei Ordnern aus. Hier wird damit die Erlaubnis gesteuert, den Ordner zu öffnen (cd), den Inhalt anzuzeigen (ls) und gegebenenfalls bei entsprechenden Schreib/Leserechten zu ändern.
Helferlein
Chmod, von change mode liefert die Möglichkeit, Zugriffrechte für Dateien und Verzeichnisse in Abhängigkeit von der Benutzerklasse festzulegen.
SELFHTML bietet ein Tool, mit welchem sich die notwendige Schreibweise für die gewünschten Rechte komfortabel ermitteln lässt.
Unix-Dateirechte-Setzer (chmod)