Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
lpi1:dateirechte [2017/10/17 07:03] 127.0.0.1 Externe Bearbeitung |
lpi1:dateirechte [2021/02/17 10:55] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Übung: finde die minimal nötigen Berechtigungen ====== | ||
- | |||
- | mkdir -m 000 /tmp/dir1 /tmp/dir2 | ||
- | echo geheim > file1 | ||
- | chmod 000 file1 | ||
- | |||
- | Welche Berechtigungen müssen jeweils bei ''dir1'', ''dir2'' und ''file1'' hinzugefügt werden, damit ''file1'' mit | ||
- | cp file1 dir1/ | ||
- | ins Verzeichnis ''dir1'' kopiert werden kann? | ||
- | |||
- | ---- | ||
- | |||
- | Welche Berechtigungen müssen jeweils bei ''dir1'', ''dir2'' und ''file1'' hinzugefügt werden, damit ''file1'' mit | ||
- | mv /tmp/dir1/file1 /tmp/dir2/ | ||
- | ins Verzeichnis ''dir2'' verschoben werden kann? | ||
- | |||
- | |||
- | ====== Übung: mit umask Berechtigung setzen ====== | ||
- | |||
- | Welche ''umask'' muss man setzen, damit neu angelegte | ||
- | * Dateien die Berechtigung ''rw- r-- -w-'' und | ||
- | * Verzeichnisse die Berechtigung ''rwx r-x -w-'' | ||
- | bekommen. | ||
- | ====== Befehle Dateirechte ====== | ||
- | ^ Dateizugriffsrechte betrachten | | ||
- | ls -l datei | ||
- | | | ||
- | ^ Verzeichnisrechte betrachten | | ||
- | 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 {} + | ||
- | | | ||
- | |||
- | ====== Beispiel: Schreibrechte im Verzeichnis - mehr als man denkt ====== | ||
- | mkdir /test | ||
- | id nutzer17 | ||
- | <file> | ||
- | uid=1001(nutzer17) gid=100(users) groups=100(users),16(dialout),33(video) | ||
- | </file> | ||
- | id iw | ||
- | <file> | ||
- | uid=1000(iw) gid=100(users) groups=100(users),16(dialout),17(audio),33(video) | ||
- | </file> | ||
- | chown iw:users /test/ | ||
- | chmod g+w /test/ | ||
- | ls -ld /test/ | ||
- | <file> | ||
- | drwxrwxr-x 2 iw users 4096 Oct 10 17:30 /test/ | ||
- | </file> | ||
- | su - iw | ||
- | cat <<EOF > /test/unveraenderbar.txt | ||
- | <file> | ||
- | Dies ist ein unveraenderlicher Text | ||
- | </file> | ||
- | EOF | ||
- | chmod u=rw,g=r,o=r /test/unveraenderbar.txt | ||
- | logout | ||
- | su - nutzer17 | ||
- | ls -l /test/unveraenderbar.txt | ||
- | <file> | ||
- | -rw-r--r-- 1 iw users 36 2005-10-10 17:32 /test/unveraenderbar.txt | ||
- | </file> | ||
- | vi /test/unveraenderbar.txt | ||
- | ls -la /test/ | ||
- | <file> | ||
- | 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 | ||
- | </file> | ||
- | |||
- | ====== Übung: Weniger Rechte für Eigentümer und Gruppe ====== | ||
- | ''/tmp/datei356'' : | ||
- | <file> | ||
- | #!/bin/bash | ||
- | echo executable | ||
- | </file> | ||
- | chmod 356 /tmp/datei356 | ||
- | |||
- | Wer darf was? | ||
- | |||
- | | ''r'' ''w'' ''x'' ^Mitglied der Gruppe ^nicht Mitglied der Gruppe^ | ||
- | ^ Besitzer| ''_'' ''_'' ''_'' | ''_'' ''_'' ''_'' | | ||
- | ^ nicht Besitzer| ''_'' ''_'' ''_'' | ''_'' ''_'' ''_'' | | ||
- | ====== Beispiel: Gruppenzugehörigkeiten kleben am Prozess länger als man denkt ====== | ||
- | groupadd projekt | ||
- | useradd -m -G projekt iw | ||
- | touch /tmp/datei | ||
- | chown root:projekt | ||
- | 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 | ||
- | |||
- | ====== 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 === | ||
- | ls -l /tmp/backup | ||
- | |||
- | === Server A === | ||
- | |||
- | mkdir /tmp/restore | ||
- | rsync -a server_b:/tmp/backup/file_* /tmp/restore | ||
- | ls -l /tmp/restore | ||
- | |||
- | ====== Links ====== | ||
- | * [[ http://www.heise.de/security/news/meldung/69292 | Sind ACLs unter Windows "besser"? ]] | ||
- | * [[ http://www.matthiess.de/freie-software/linux/posix-acl-erste-schritte | Erste Schritte mit posix-acls ]] | ||
- | * [[ http://www.suse.de/~agruen/acl/linux-acls/online | Detailierte Beschreibung Linux ACLs ]] | ||