Berechtigungen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 74: Zeile 74:
 
=Bedeutungen der Zugriffsarten=
 
=Bedeutungen der Zugriffsarten=
 
==Dateien==
 
==Dateien==
r: Der Inhalt der Datei kann gelesen und damit auch kopiert werden.  
+
===r===
 +
;Der Inhalt der Datei kann gelesen und damit auch kopiert werden.  
 
*cat test
 
*cat test
 
  Dies ist eine Testdatei
 
  Dies ist eine Testdatei
 
+
*cp test backup
root@zero:~# cp test backup
+
===w===
 
+
;Der Inhalt der Datei darf verändert werden.  
* w: Der Inhalt der Datei darf verändert werden. Ob die Datei gelöscht werden kann ist
+
;Ob die Datei gelöscht werden kann ist keine Eigenschaft der Datei, sondern des Verzeichnisses, indem sich die Datei befindet.
keine Eigenschaft der Datei, sondern des Verzeichnisses, indem sich die Datei befindet.
+
*cat > test
root@zero:~# cat > test
 
 
  Hier steht jetzt was anderes
 
  Hier steht jetzt was anderes
^C
+
cat test
root@zero:~# cat test
 
 
  Hier steht jetzt was anderes
 
  Hier steht jetzt was anderes
 
+
*ls -ld verzeichnis/
xinux@zero:~$ ls -ld verzeichnis/
 
 
  dr-xr-xr-x 2 xinux xinux 4096 2009-06-18 11:16 verzeichnis/
 
  dr-xr-xr-x 2 xinux xinux 4096 2009-06-18 11:16 verzeichnis/
xinux@zero:~/verzeichnis$ rm text
+
*rm text
 
  rm: Entfernen von „text“ nicht möglich: Permission denied
 
  rm: Entfernen von „text“ nicht möglich: Permission denied
 
+
===x===
* x: Ausführrecht für Programme und Skripte
+
;Ausführrecht für Programme und Skripte
xinux@zero:~$ ./programm
+
*./programm
  -bash: ./programm: Permission denied
+
  ./programm: Permission denied
xinux@zero:~$ chmod +x programm
+
*chmod +x programm
xinux@zero:~$ ./programm
+
./programm
 
  Test
 
  Test
 
   test
 
   test
 
+
==Verzeichnisse==
====Verzeichnisse====
+
===r===
* r: Die Einträge in dem Verzeichnis sind lesbar.
+
;Die Einträge in dem Verzeichnis sind lesbar.
Leserecht von verzeichnis/ entziehen
+
;Leserecht von verzeichnis/ entziehen
xinux@zero:~$ chmod a-r verzeichnis/
+
*chmod a-r verzeichnis/
xinux@zero:~$ ls verzeichnis/
+
*ls verzeichnis/
 
  ls: Öffnen von Verzeichnis verzeichnis/ nicht möglich: Permission denied
 
  ls: Öffnen von Verzeichnis verzeichnis/ nicht möglich: Permission denied
Leserecht für Benutzer und Gruppe vergeben
+
;Leserecht für Benutzer und Gruppe vergeben
xinux@zero:~$ chmod a+r verzeichnis/
+
*chmod a+r verzeichnis/
xinux@zero:~$ ls verzeichnis/
+
*ls verzeichnis/
 
  text
 
  text
 
+
===w===
* w: Die Einträge in dem Verzeichnis können geändert werden.  
+
;Die Einträge in dem Verzeichnis können geändert werden.  
Neue Datei erstellen
+
;Neue Datei erstellen
xinux@zero:~$ touch neu
+
*touch neu
xinux@zero:~$ ls neu
+
*ls neu
 
  neu
 
  neu
 
+
;Datei löschen
Datei löschen
+
*rm neu
xinux@zero:~$ rm neu
+
*ls neu
xinux@zero:~$ ls neu
 
 
  ls: Zugriff auf neu nicht möglich: No such file or directory
 
  ls: Zugriff auf neu nicht möglich: No such file or directory
 
+
===x===
* x: Der Name des Verzeichnisses kann in einem Pfadnamen erscheinen.
+
;Der Name des Verzeichnisses kann in einem Pfadnamen erscheinen.
Verzeichnis ohne x Recht
+
;Verzeichnis ohne x Recht
xinux@zero:~$ chmod a-x verzeichnis/
+
*chmod a-x verzeichnis/
Wechseln in Verzeichnis mangels x-Recht nicht möglich
+
;Wechseln in Verzeichnis mangels x-Recht nicht möglich
xinux@zero:~$ cd verzeichnis/
+
*cd verzeichnis/
 
  -bash: cd: verzeichnis/: Permission denied
 
  -bash: cd: verzeichnis/: Permission denied
x-Recht vergeben
+
;x-Recht vergeben
xinux@zero:~$ chmod a+x verzeichnis/
+
*chmod a+x verzeichnis/
damit Wechsel in Verzeichnis möglich
+
;damit Wechsel in Verzeichnis möglich
xinux@zero:~$ cd verzeichnis/
+
*cd verzeichnis/
xinux@zero:~/verzeichnis$ pwd
+
*pwd
 
  /home/xinux/verzeichnis
 
  /home/xinux/verzeichnis
 
+
=umask=
====umask====
+
;Neue Dateien und Verzeichnisse werden mit ein und denselben Zufriffsrechten erzeugt.
Neue Dateien und Verzeichnisse werden mit ein und denselben Zufriffsrechten erzeugt.
+
*mkdir text
xinux@zero:~$ mkdir text
+
*touch textdat
xinux@zero:~$ touch textdat
+
*ls -ld text*
xinux@zero:~$ ls -ld text*
 
 
  drwxr-xr-x 2 xinux xinux 4096 2009-06-18 11:37 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
 
  -rw-r--r-- 1 xinux xinux    0 2009-06-18 11:37 textdat
 
+
;Zuständig für dieses Verhalten ist die sogenannte umask.
Zuständig für dieses Verhalten ist die sogenannte umask, die oft in der Datei
+
;Dies wird oft in der Datei /etc/profile auf den Wert 022 voreingestellt.
/etc/profile auf den Wert 022 voreingestellt ist. Zusätzlich wird noch eine
+
;Zusätzlich wird noch eine Maximalmaske benötigt, die sich für Verzeichnisse und andere Dateien unterscheidet.  
Maximalmaske benötigt, die sich für Verzeichnisse und andere Dateien
+
;Die bei der Erzeugung gesetzten Rechte entstehen nun, indem von der Maximalmaske der durch die umask vorgegebene Wert subtrahiert wird:
unterscheidet. Die bei der Erzeugung gesetzten Rechte entstehen nun, indem von
 
der Maximalmaske der durch die umask vorgegebene Wert subtrahiert wird:
 
  
 
{| border=1 cellpadding=2
 
{| border=1 cellpadding=2
Zeile 167: Zeile 161:
 
| 755
 
| 755
 
|}
 
|}
 
+
*grep umask /etc/profile
xinux@zero:~$ grep umask /etc/profile
 
 
  umask 022
 
  umask 022
  
Jeder kann seine eigene umask in der Datei ~/.profile einstellen!
+
;Jeder kann seine eigene umask in der Datei ~/.profile einstellen!

Version vom 9. November 2022, 11:16 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
  • 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 t
-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. D.h. die Rechte derGruppe 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!