Berechtigungen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
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

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!