Berechtigungen

Aus xinux.net
Zur Navigation springen Zur Suche springen

chmod

  • Die Syntax des Befehls chmod lautet:
  • chmod Oktalzahl Dateiliste

oder

  • chmod WerWieWas [,WerWieWas,.....] Dateiliste

chmod oktale Schreibweise

Specialrights        User           Group         Other
usbit gsbit sticky    r    w   x     r   w   x     r   w   x
  1     1      1      1    1   1     1   1   1     1   1   1
  0     0      0      0    0   0     0   0   0     0   0   0
Oktale Wertigkeit pro Recht
  4     2       1     4    2   1     4   2   1     4   2   1

Beispiele

  • chmod -v 751 test
mode of 'test' changed from 0664 (rw-rw-r--) to 0751 (rwxr-x--x)
  • chmod -v 4770 test
mode of 'test' changed from 0751 (rwxr-x--x) to 4770 (rwsrwx---)
  • chmod -v 0 test
mode of 'test' changed from 4770 (rwsrwx---) to 0000 (---------)

chmod symbolische Schreibweise

  • Durch WerWieWas bzw. Oktalzahl wird die Rechtetabelle definiert.
  • Innerhalb von WerWieWas darf es kein Leerzeichen geben.
  • Wer bezeichnet den Benutzerkreis, dem man Rechte gibt.
  • Wie die Art, in der die Rechte gegeben werden
  • Was die Rechte als solche.
  • Im einzelnen können folgende Kürzel benutzt werden

Für Wer kann eines der folgenden Kürzel oder eine Kombination davon stehen

u                   (user) Rechte für den Dateibesitzer
g                   (group) Rechte für die Gruppe
o                   (others) Rechte für alle anderen Benutzer
a                   (all) Rechte für alle Benutzer

Für Wie steht eines der folgenden Kürzel

+                   Die Rechte werden zu den vorhandenen zusätzlich vergeben
-                   Die im Folgenden genannten Rechte werden entzogen
=                   Die im Folgenden genannten Rechte ersetzen die bisherigen

Für Was steht eines der folgenden Kürzel

r                   (read) lesen
w                   (write) schreiben
x                   (execute) ausführen

oder diese Sonderformen

s                   (usersbit) Programm läuft unter der UID des Besitzers
s                   (groupsbit)Programm läuft unter der GID des GRUPPE
t                   (stickybit) Dateien im Verzeichnis darf nur Besitzer löschen

Beispiel

Setze für alle Schreib- und Leserecht
  • chmod -v a=rw test
Erteile Besitzer Ausführungsrecht
  • chmod -v u+x test
Erteile Besitzer alle Rechte und setze der Gruppe und dem Rest Leserecht
  • chmod -v u+rwx,g=r,o=r test
-rwxr--r-- 1 xinux xinux 0 2009-06-16 12:01 test
xinux@zero:~$

chmod Optionen

-c   (changes) es werden nur die Dateien angezeigt, deren Zugriffsrechte tatsächlich verändert werden
-f   (silent, quiet) Fehlermeldungen wegen fehlgeschlagener Änderungsversuche werden unterdrückt
-v   (verbose) alle Aktionen werden angezeigt
-R   (recursive) die Zugriffsrechte aller Dateien in den Unterverzeichnissen werden ebenfalls geändert
  • Theoretisch sind alle Kombinationen der Zugriffsrechte denkbar.
  • Der Eigentümer einer Datei darf diese immer lesen, selbst wenn das Lesebit nicht gesetzt ist.
  • Genauso macht es wenig Sinn, eine gewöhnliche Textdatei als ausführbar zu setzen
  • Die Shell wird damit nichts anfangen können.
  • Ein x für ein Verzeichnis gibt an, dass in dieses gewechselt werden kann.
  • Rechte sind verbindlich
Interessant ist auch ein Konstrukt folgender Art
-rwx---rwx
  • Das angibt, dass mit der Datei alles angestellt werden kann, außer durch Nutzer der Gruppe.
  • Versucht irgend jemand, der nicht der Gruppe des Eigentümers angehört, die Datei zu modifizieren wird ihm dies gelingen
  • einem Gruppenmitglied bleibt dies versagt, obwohl er ja gleichzeitig ein "Anderer" ist

=> die Rechte der Gruppe sind verbindlicher, als die Rechte der anderen!

Bedeutungen der Zugriffsarten

Dateien

r

Der Inhalt der Datei kann gelesen und damit auch kopiert werden.
  • cat test
Dies ist eine Testdatei
  • cp test backup

w

Der Inhalt der Datei darf verändert werden.
Ob die Datei gelöscht werden kann ist keine Eigenschaft der Datei, sondern des Verzeichnisses, indem sich die Datei befindet.
  • cat > test
Hier steht jetzt was anderes

cat test

Hier steht jetzt was anderes
  • ls -ld verzeichnis/
dr-xr-xr-x 2 xinux xinux 4096 2009-06-18 11:16 verzeichnis/
  • rm text
rm: Entfernen von „text“ nicht möglich: Permission denied

x

Ausführrecht für Programme und Skripte
  • ./programm
./programm: Permission denied
  • chmod +x programm

./programm

Test
 test

Verzeichnisse

r

Die Einträge in dem Verzeichnis sind lesbar.
Leserecht von verzeichnis/ entziehen
  • chmod a-r verzeichnis/
  • ls verzeichnis/
ls: Öffnen von Verzeichnis verzeichnis/ nicht möglich: Permission denied
Leserecht für Benutzer und Gruppe vergeben
  • chmod a+r verzeichnis/
  • ls verzeichnis/
text

w

Die Einträge in dem Verzeichnis können geändert werden.
Neue Datei erstellen
  • touch neu
  • ls neu
neu
Datei löschen
  • rm neu
  • ls neu
ls: Zugriff auf neu nicht möglich: No such file or directory

x

Der Name des Verzeichnisses kann in einem Pfadnamen erscheinen.
Verzeichnis ohne x Recht
  • chmod a-x verzeichnis/
Wechseln in Verzeichnis mangels x-Recht nicht möglich
  • cd verzeichnis/
-bash: cd: verzeichnis/: Permission denied
x-Recht vergeben
  • chmod a+x verzeichnis/
damit Wechsel in Verzeichnis möglich
  • cd verzeichnis/
  • pwd
/home/xinux/verzeichnis

umask

Neue Dateien und Verzeichnisse werden mit ein und denselben Zufriffsrechten erzeugt.
  • mkdir text
  • touch textdat
  • ls -ld text*
drwxr-xr-x 2 xinux xinux 4096 2009-06-18 11:37 text
-rw-r--r-- 1 xinux xinux    0 2009-06-18 11:37 textdat
Zuständig für dieses Verhalten ist die sogenannte umask.
Dies wird oft in der Datei /etc/profile auf den Wert 022 voreingestellt.
Zusätzlich wird noch eine Maximalmaske benötigt, die sich für Verzeichnisse und andere Dateien unterscheidet.
Die bei der Erzeugung gesetzten Rechte entstehen nun, indem von der Maximalmaske der durch die umask vorgegebene Wert subtrahiert wird
Dateien Verzeichnisse
Systemvorgabe 666 777
-umask 022 022
Ergebnis 644 755
  • grep umask /etc/profile
umask 022
Jeder kann seine eigene umask in der Datei ~/.profile einstellen!