Berechtigungen: Unterschied zwischen den Versionen
| Zeile 26: | Zeile 26: | ||
*Wie die Art, in der die Rechte gegeben werden | *Wie die Art, in der die Rechte gegeben werden | ||
*Was die Rechte als solche. | *Was die Rechte als solche. | ||
| − | *Im einzelnen können folgende Kürzel benutzt werden | + | *Im einzelnen können folgende Kürzel benutzt werden=== |
| − | + | ===Für Wer kann eines der folgenden Kürzel oder eine Kombination davon stehen: | |
| − | Für Wer kann eines der folgenden Kürzel oder eine Kombination davon stehen: | ||
u (user) Rechte für den Dateibesitzer | u (user) Rechte für den Dateibesitzer | ||
g (group) Rechte für die Gruppe | g (group) Rechte für die Gruppe | ||
o (others) Rechte für alle anderen Benutzer | o (others) Rechte für alle anderen Benutzer | ||
a (all) Rechte für alle Benutzer | a (all) Rechte für alle Benutzer | ||
| − | Für Wie steht eines der folgenden Kürzel | + | ===Für Wie steht eines der folgenden Kürzel=== |
+ Die Rechte werden zu den vorhandenen zusätzlich vergeben | + Die Rechte werden zu den vorhandenen zusätzlich vergeben | ||
- Die im Folgenden genannten Rechte werden entzogen | - Die im Folgenden genannten Rechte werden entzogen | ||
= Die im Folgenden genannten Rechte ersetzen die bisherigen | = Die im Folgenden genannten Rechte ersetzen die bisherigen | ||
| − | Für Was steht eines der folgenden Kürzel | + | ===Für Was steht eines der folgenden Kürzel=== |
r (read) lesen | r (read) lesen | ||
w (write) schreiben | w (write) schreiben | ||
x (execute) ausführen | x (execute) ausführen | ||
| − | oder diese Sonderformen | + | ===oder diese Sonderformen=== |
s (usersbit) Programm läuft unter der UID des Besitzers | s (usersbit) Programm läuft unter der UID des Besitzers | ||
s (groupsbit)Programm läuft unter der GID des GRUPPE | s (groupsbit)Programm läuft unter der GID des GRUPPE | ||
Version vom 9. November 2022, 11:03 Uhr
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
xinux@zero:~$ chmod a=rw test xinux@zero:~$ ls -l test -rw-rw-rw- 1 xinux xinux 0 2009-06-16 12:01 test xinux@zero:~$
Erteile Besitzer Ausführungsrecht
xinux@zero:~$ chmod u+x test ; ls -l test -rwxrw-rw- 1 xinux xinux 0 2009-06-16 12:01 test xinux@zero:~$
Erteile Besitzer alle Rechte und setze der Gruppe und dem Rest Leserecht
xinux@zero:~$ chmod u+rwx,g=r,o=r test ; ls -l 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, aber 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. D.h. 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.
root@zero:~# cat test Dies ist eine Testdatei root@zero:~# 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.
root@zero:~# cat > test Hier steht jetzt was anderes ^C root@zero:~# cat test Hier steht jetzt was anderes xinux@zero:~$ ls -ld verzeichnis/ dr-xr-xr-x 2 xinux xinux 4096 2009-06-18 11:16 verzeichnis/ xinux@zero:~/verzeichnis$ rm text rm: Entfernen von „text“ nicht möglich: Permission denied
- x: Ausführrecht für Programme und Skripte
xinux@zero:~$ ./programm -bash: ./programm: Permission denied xinux@zero:~$ chmod +x programm xinux@zero:~$ ./programm Test test
Verzeichnisse
- r: Die Einträge in dem Verzeichnis sind lesbar.
Leserecht von verzeichnis/ entziehen
xinux@zero:~$ chmod a-r verzeichnis/ xinux@zero:~$ ls verzeichnis/ ls: Öffnen von Verzeichnis verzeichnis/ nicht möglich: Permission denied
Leserecht für Benutzer und Gruppe vergeben
xinux@zero:~$ chmod a+r verzeichnis/ xinux@zero:~$ ls verzeichnis/ text
- w: Die Einträge in dem Verzeichnis können geändert werden.
Neue Datei erstellen
xinux@zero:~$ touch neu xinux@zero:~$ ls neu neu
Datei löschen
xinux@zero:~$ rm neu xinux@zero:~$ 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
xinux@zero:~$ chmod a-x verzeichnis/
Wechseln in Verzeichnis mangels x-Recht nicht möglich
xinux@zero:~$ cd verzeichnis/ -bash: cd: verzeichnis/: Permission denied
x-Recht vergeben
xinux@zero:~$ chmod a+x verzeichnis/
damit Wechsel in Verzeichnis möglich
xinux@zero:~$ cd verzeichnis/ xinux@zero:~/verzeichnis$ pwd /home/xinux/verzeichnis
umask
Neue Dateien und Verzeichnisse werden mit ein und denselben Zufriffsrechten erzeugt.
xinux@zero:~$ mkdir text xinux@zero:~$ touch textdat xinux@zero:~$ 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, die oft in der Datei /etc/profile auf den Wert 022 voreingestellt ist. 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 |
xinux@zero:~$ grep umask /etc/profile umask 022
Jeder kann seine eigene umask in der Datei ~/.profile einstellen!