Zugriffsrechte
chmod
Entferne das Ausführrecht für alle Benutzer für /tmp/foo
:
chmod a-x /tmp/foo
cd /tmp/foo
>> bash: cd: /tmp/foo/: Permission denied
touch /tmp/foo/bar
>> touch: cannot touch `/tmp/foo/bar': Permission denied
ls /tmp/too
>> <Funktioniert!>
Verzeichnis ist also ‘festgebacken’ - User können sich den Inhalt anzeigen lassen, sonst aber nichts.
Man kann sich je nach Rechtevergabe relativ interessante Konfigurationen erstellen - Je nach Bedarf
-
Linux beachtet die Rechte in folgender Reihenfolge:
User vor Gruppe vor Rest
Ein Verzeichnis, dass deinem Benutzer keine Rechte einräumt, deiner Gruppe aber alle Rechte, kann von deinem Benuzter nicht verwendet werden, jedoch von einem anderen Nutzer deiner Gruppe.
Schreibrechte im Verzeichnis vorhanden? Jede Datei in dem Verzeichnis kann gelöscht werden, egal wem diese gehört, und wie dessen Rechte sind.
chown
Besitzer (und Gruppe) einer Datei festlegen:
chown Benutzer:Gruppe /Pfad/zur/Datei
chown -R
=> Rekursiv für alle Unterdateien
chown :Gruppe
=> Nur die Gruppe festlegen
chgrp
Gruppe einer Datei festlegen:
chgrp Gruppe /Pfad/zur/Datei
Aktion | Buchstabe | Oktal |
---|---|---|
Lesen | r | 4 |
Schreiben | w | 2 |
Ausführen | x | 1 |
Sticky-Bit
-
Auf Verzeichnisse: Nur Besitzer und Root dürfen Dateien löschen (Bsp: /tmp)
-
Auf Dateien: möglich, wird aber i.d.R. ignoriert
ls -ld /tmp/
drwxrwxrwt 15 root root 4096 2011-12-03 12:29 /tmp/
Verzeichnis hat das Sticky-Bit gesetzt.
Ist das t groß, dann ist das Ausführen-Flag (x
) nicht gesetzt.
-
SUID
- Programm wird immer im Kontext des Besitzers ausgeführt (Bsp: passwd)
-
SGID
- Programm wird immer im Kontext der Gruppe ausgeführt
ls -ld /usr/bin/passwd
-rwsr-xr-x 1 root root 42824 2011-06-24 11:28 /usr/bin/passwd
passwd kann von jedem Ausgeführt werden, läuft aber immer als root!
Ist das S groß, dann ist das Ausführen Flag (x
) nicht gesetzt.
Aktion | Buchstabe | Oktal |
---|---|---|
SUID | s | 4 |
SGID | s | 2 |
Sticky-Bit | t | 1 |
umask
Legt fest, welche Rechte für neue Dateien gesetzt werden sollen Berechnet sich durch NAND():
666 - 022 = 644
umask 053
:
666 - 053 = 613
touch demo
ls -l
>> -rw--w-r-- ~blafasel~ demo
Stimmt nicht ganz
mkdir test
ls -l
>> drwx-wSr-- ~blafasel~ test
Scheint doch zu stimmen
- Diese Verwirrung ist ein Sicherheitsfeature™
- Bitte in der Wikipedia nachlesen
Man kann umask auch mit lustigen Argumenten aufrufen:
umask -S u+rw
u=rwx,g=,o=umask -p
umask 0077umask -S u+rw,g=r
u=rwx,g=r,o=umask -p
umask 0037
last update: 2024-01-28 17:42:17 +0100