Um die Zugriffsrechte von Dateien und Verzeichnissen zu
verändern, steht das Kommando
chmod unter Debian GNU/Linux zur Verfügung.
Spielen wir einmal ein wenig
damit herum:
Erzeugen Sie zunächst eine neue Datei, beispielsweise
mit dem Kommando touch testdatei.
Das Kommando touch
wird normalerweise dazu benutzt, die
Datei mit einem aktuellen „Zeitstempel“ zu versehen.
Wenn Sie jedoch einen Dateinamen angeben, der noch nicht existiert, so wird diese
Datei neu angelegt, mit einer Länge von 0 Byte.
Überprüfen Sie dies mit dem Kommando ls -l
und werfen Sie einen Blick auf die Zugriffsrechte:
bash-2.03$ touch testdatei
bash-2.03$ ls -l testdatei
-rw-r--r-- 1 fr fr 0 Jan 19 18:15 testdatei
|
Bei Ihrem Versuch wird die Datei natürlich einen anderen
Zeitstempel haben und Benutzer- und Gruppenzugehörigkeit
entsprechen Ihrem Loginnamen. Die Zugriffsrechte
(
-rw-r--r--) werden von Debian GNU/Linux
automatisch für neue Dateien auf die gezeigten Werte gesetzt.
Sie können diese Vorgabe mit dem Kommando
umask ändern.
Sehen Sie sich zunächst die Man-Page zu
chmod mit dem Kommando
man chmod an.
Wir werden hier nicht auf jedes Detail eingehen, sondern an einigen
Beispielen zeigen, wie sich chmod mit
verschiedenen Parametern auswirkt.
Führen Sie das Kommando chmod u+x testdatei aus.
Sehen Sie sich die
Veränderung mit ls -l testdatei an.
Es wurden Rechte zum Ausführen
(x - execute) der Datei für den Besitzer
(u - User)
hinzugefügt (+ - Pluszeichen).
bash-2.03$ chmod u+x testdatei
bash-2.03$ ls -l testdatei
-rwxr--r-- 1 fr fr 0 Jan 19 18:15 testdatei
|
Ein solches Kommando können Sie beispielsweise
auf ein selbstgeschriebenes Shellscript oder Perl-Programm
anwenden, damit es auch ausführbar ist.
Wenn Sie nun noch möchten, daß niemand
außer Ihnen einen Blick in Ihre Arbeit werfen kann, so müssen
Sie die Rechte zum Lesen der Datei für die
Gruppe (g - Group) sowie alle anderen
Benutzer (o - Other)
entfernen (- - Minuszeichen). Sie können
dies mit dem Kommando chmod go-r testdatei erreichen:
bash-2.03$ chmod go-r testdatei
bash-2.03$ ls -l testdatei
-rwx------ 1 fr fr 0 Jan 19 18:15 testdatei
|
Wie Sie gesehen haben, können Sie mit den Zeichen
+ (Plus) oder
- (Minus) Rechte hinzufügen
oder entfernen. Manchmal ist es damit etwas
verwirrend, einen gewünschten Zustand herzustellen.
Daher bietet
chmod
noch die Option
=
(Gleichheitszeichen), welche genau die angegebenen
Rechte setzt und alle anderen löscht.
Auch hier können Sie wieder die Buchstaben
ugo (User, Group, Other) benutzen:
bash-2.03$ chmod ugo=rx testdatei
bash-2.03$ ls -l testdatei
-r-xr-xr-x 1 fr fr 0 Jan 19 18:15 testdatei
|
Die Datei ist nun für jeden Benutzer lesbar und
kann auch von jedem ausgeführt werden.
Weiterhin kann keiner der Benutzer diese Datei schreiben.
Entfernen Sie nun die Rechte zum Ausführen der Datei für alle Benutzer
(chmod a-x testdatei), bei
einer Testdatei brauchen wir diese nicht.
Versuchen Sie einmal die Datei zu löschen.
Zur Erinnerung: Sie hatten vor kurzem die Datei
mit dem Kommando chmod ugo=rx testdatei behandelt. Löschen
Sie also die Datei mit dem Kommando rm testdatei:
bash-2.03$ rm testdatei
rm: schreibgeschützte Datei »testdatei« entfernen?
|
Wenn Sie die Umgebungsvariablen nicht passend gesetzt haben,
wird Ihnen die Fehlermeldung
in englischer Sprache präsentiert.
Da Sie (und auch kein anderer) keine Rechte haben,
die Datei zu schreiben, fragt das Kommando
rm, ob Sie diese Aktion wirklich durchführen wollen.
Dies ist eine spezielle Funktion von rm und hat eigentlich wenig mit
den Zugriffsrechten zu tun. Wenn Sie die Datei wirklich löschen möchten,
können Sie die Frage bestätigen.
Stören Sie sich nicht
an der Ausgabe der Rechte an Zahlenform, des Kommandos rm, Sie
können die Bedeutung in der Man-Page nachlesen.