Dies ist eine alte Version des Dokuments!
Übung: finde die minimal nötigen Berechtigungen
mkdir -m 000 /tmp/dir1 /tmp/dir2
echo geheim > file1
chmod 000 file1
Welche (minimalen) Berechtigungen müssen jeweils bei /tmp/dir1
, /tmp/dir2
und file1
hinzugefügt werden, damit file1
mit
cp file1 /tmp/dir1/file2
ins Verzeichnis /tmp/dir1
kopiert werden kann?
Welche (minimalen) Berechtigungen müssen jeweils bei /tmp/dir1
, /tmp/dir2
und file2
hinzugefügt werden, damit file2
mit
mv /tmp/dir1/file2 /tmp/dir2/
ins Verzeichnis dir2
verschoben werden kann?
Übung: mit umask Berechtigung setzen
Welche umask
muss man setzen, damit neu angelegte
bekommen?
Befehle Dateirechte
Dateizugriffsrechte betrachten | ls -l datei
|
Dateizugriffsrechte von Dateien im Verzeichnis betrachten | ls -l verzeichnis
|
Verzeichnisrechte betrachten (nicht der Einträge im Verzeichnis) | ls -ld verzeichnis
|
Besitzer der Datei ändern | chown benutzer datei
|
Gruppe der Datei ändern | chown :users datei
chgrp users datei
|
SUID Recht für die Datei /bin/cat setzen | Programm starten und real bzw. effective UID ansehen:chmod u+s /bin/cat
Als Nutzer:
cat &
ps -C cat -o cmd,ruser,euser
|
Wo darf ich schreiben? | find / /dev -xdev -writable -ls
|
Was darf eine Gruppe? | find / /dev -xdev -group users -ls
|
Alle SUID-root Dateien finden | find / -xdev -type f -user root -perm /4000 -ls 2>/dev/null
find / -xdev -type f -perm -u=s -ls
|
Allen Programmen das Ausführungsrecht nehmen | find verzeichnis/ -type f -perm /0111 -exec chmod a-x {} \;
find verzeichnis/ -type f -perm /0111 -print0 | xargs -0 chmod a-x
|
Beispiel: Schreibrechte im Verzeichnis - mehr als man denkt
mkdir /test
id nutzer17
uid=1001(nutzer17) gid=100(users) groups=100(users),16(dialout),33(video)
id iw
uid=1000(iw) gid=100(users) groups=100(users),16(dialout),17(audio),33(video)
chown iw:users /test/
chmod g+w /test/
ls -ld /test/
drwxrwxr-x 2 iw users 4096 Oct 10 17:30 /test/
su - iw
cat <<EOF > /test/unveraenderbar.txt
Dies ist ein unveraenderlicher Text
EOF
chmod u=rw,g=r,o=r /test/unveraenderbar.txt
logout
su - nutzer17
ls -l /test/unveraenderbar.txt
-rw-r--r-- 1 iw users 36 2005-10-10 17:32 /test/unveraenderbar.txt
vi /test/unveraenderbar.txt
ls -la /test/
insgesamt 12
drwxrwxr-x 2 iw users 4096 2005-10-10 17:35 .
drwxr-xr-x 22 root root 4096 2005-10-10 17:30 ..
-rw-r--r-- 1 nutzer17 users 34 2005-10-10 17:35 unveraenderbar.txt
Übung: Weniger Rechte für Eigentümer und Gruppe
Erzeuge eine Datei /tmp/datei356
mit folgendem Inhalt:
- /tmp/datei356
#!/bin/bash
echo executable
Setze die Berechtigungen zu 356
:
chmod 356 /tmp/datei356
Wer darf was?
r w x | Mitglied der Gruppe | nicht Mitglied der Gruppe |
Besitzer | _ _ _ | _ _ _ |
nicht Besitzer | _ _ _ | _ _ _ |
Tip:
Das Schreiben von Dateien kann man zerstörungsfrei mit
>> /tmp/datei356
testen.
Das Lesen von Dateien kann man mit
tail /tmp/datei356
head -0 /tmp/datei356
testen. head -0
zeigt die ersten 0 Zeilen, also nichts, aber öffnet die Datei. Im Fehlerfall erscheint allerdings eine Meldung, die man ggf. umlenken muss, wenn einem der Exit Status genügt.
1)
Beispiel: Gruppenzugehörigkeiten kleben am Prozess länger als man denkt
groupadd projekt
useradd -m -G projekt iw
touch /tmp/datei
chown root:projekt /tmp/datei
chmod g+w /tmp/datei
su - iw
id iw
echo test1 >> /tmp/datei
su -
usermod -G users iw
id iw
logout
id iw
echo test1 >> /tmp/datei
Beispiel: Ungewollter Eigentümerwechsel nach dem Löschen eines Nutzers
useradd -m chef
userdel chef
useradd -m raumpflege
ls -l /home
Daher sollte man vor oder nach dem Löschen einer Benutzerkennung sämtliche Dateien, die diesem Benutzer gehörten, als root
übernehmen oder einem anderen, für diesen Zweck erstellten technischen Benutzer übereignen.
Beispiel: SUID-Bit Dateien finden und SUID-Bit dauerhaft entfernen
SUID-Bit Dateien finden (als root):
find / /boot -xdev -perm /u+s -type f -user root -ls
SUID-Bit dauerhaft entfernen:
Ubuntu / Debian:
dpkg-statoverride --update --add root root 0755 /bin/ping
Beispiel: Auswirkung von mount-Optionen
mkdir /mnt/sda2
mount -o ro /dev/sda2 /mnt/sda2
touch /mnt/sda2/test
Weitere Mount-Optionen mit Auswirkungen auf Dateirechte:
Option | Bedeutung |
nodev | Gerätedateien sind nicht erlaubt |
noexec | Ausführbare Dateien sind nicht erlaubt |
nosuid | S-BIT wird ignoriert |
ro | Dateien sind nicht veränderbar |
Beispiel: Ungewollter Eigentümerwechsel bei Backup und Restore
Server A
useradd -u 2000 nutzer_a
useradd -u 2001 nutzer_b
useradd -u 2002 nutzer_c
useradd -u 2003 nutzer_d
Server B
useradd -u 2000 nutzer_a
useradd -u 2003 nutzer_b
useradd -u 2001 nutzer_e
mkdir /tmp/backup
Server A
mkdir /tmp/workdir
touch /tmp/workdir/file_{a,b,c,d}
chown nutzer_a /tmp/workdir/file_a
chown nutzer_b /tmp/workdir/file_b
chown nutzer_c /tmp/workdir/file_c
chown nutzer_d /tmp/workdir/file_d
rsync -a /tmp/workdir/file_* server_b:/tmp/backup
Server B
Server A
mkdir /tmp/restore
rsync -a server_b:/tmp/backup/file_* /tmp/restore
ls -l /tmp/restore