Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:dateirechte

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:dateirechte [2017/01/13 22:47]
ingo_wichmann [Beispiel: Weniger Rechte für Eigentümer und Gruppe]
admin_grundlagen:dateirechte [2021/02/17 10:55] (aktuell)
ingo_wichmann [Übung: Weniger Rechte für Eigentümer und Gruppe]
Zeile 1: Zeile 1:
 ====== Übung: finde die minimal nötigen Berechtigungen ====== ====== Übung: finde die minimal nötigen Berechtigungen ======
  
-  mkdir -m 000 dir1 dir2+  mkdir -m 000 /tmp/dir1 /tmp/dir2
   echo geheim > file1   echo geheim > file1
   chmod 000 file1   chmod 000 file1
  
-Welche Berechtigungen müssen jeweils bei ''​dir1'',​ ''​dir2''​ und ''​file1''​ hinzugefügt werden, damit ''​file1''​ mit +Welche ​(minimalen) ​Berechtigungen müssen jeweils bei ''​/tmp/dir1'',​ ''​/tmp/dir2''​ und ''​file1''​ hinzugefügt werden, damit ''​file1''​ mit 
-  cp file1 dir1/ +  cp file1 /tmp/dir1/file2 
-ins Verzeichnis ''​dir1''​ kopiert werden kann?+ins Verzeichnis ''​/tmp/dir1''​ kopiert werden kann?
  
-Welche Berechtigungen müssen ​danach ​jeweils bei ''​dir1'',​ ''​dir2''​ und ''​file1''​ hinzugefügt werden, damit ''​file1''​ mit +---- 
-  mv dir1/file1 dir2/+ 
 +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? 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 ====== ====== Befehle Dateirechte ======
-=== Benutzer anlegen === +Dateizugriffsrechte betrachten ​|
-  useradd -m benutzer +
-=== Benutzer löschen === +
-  userdel -r benutzer +
- +
-=== Dateizugriffsrechte betrachten ​===+
   ls -l datei   ls -l datei
-=== Verzeichnisrechte betrachten ​===+
 +^ Dateizugriffsrechte von Dateien im Verzeichnis betrachten | 
 +  ls -l verzeichnis 
 +
 +Verzeichnisrechte betrachten ​(nicht der Einträge im Verzeichnis) |
   ls -ld verzeichnis   ls -ld verzeichnis
- +| 
-=== Besitzer der Datei ändern ​===+Besitzer der Datei ändern ​|
   chown benutzer datei   chown benutzer datei
-=== Gruppe der Datei ändern ​===+
 +Gruppe der Datei ändern ​|
   chown :users datei   chown :users datei
   chgrp users datei   chgrp users datei
- +| 
-=== SUID Recht der Datei ändern === +SUID Recht für die Datei ''/​bin/​cat''​ setzen | Programm ​starten und real bzw. effective UID ansehen:
-  chmod u+s programm +
- +
-programm ​starten und real bzw. effective UID prüfen: +
-  ps -eo cmd,​ruser,​euser +
   chmod u+s /bin/cat   chmod u+s /bin/cat
 +Als Nutzer:
   cat &   cat &
-  ps -eo cmd,​ruser,​euser ​-C cat +  ps -C cat -o cmd,​ruser,​euser 
- +| 
-=== GUID Recht der Datei ändern === +^ Wo darf ich schreiben? | 
-  ​chmod g+s datei +  ​find / /dev -xdev -writable -ls 
- +| 
-=== Gruppen eines Benutzers anzeigen === +Was darf eine Gruppe? ​|
-  id benutzer +
- +
-=== Was darf eine Gruppe? ​===+
   find / /dev -xdev -group users -ls   find / /dev -xdev -group users -ls
- +| 
-=== Alle SUID-root Dateien finden ​===+Alle SUID-root Dateien finden ​|
   find / -xdev -type f -user root -perm /4000 -ls 2>/​dev/​null   find / -xdev -type f -user root -perm /4000 -ls 2>/​dev/​null
   find / -xdev -type f -perm -u=s -ls   find / -xdev -type f -perm -u=s -ls
- +| 
-=== Allen Programmen das Ausführungsrecht nehmen ​=== +Allen Programmen das Ausführungsrecht nehmen ​| 
-  find verzeichnis/​ -type f -perm /0111 -exec chmod a-x {} ++  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 ====== ====== Beispiel: Schreibrechte im Verzeichnis - mehr als man denkt ======
Zeile 95: Zeile 99:
  
 ====== Übung: Weniger Rechte für Eigentümer und Gruppe ====== ====== Übung: Weniger Rechte für Eigentümer und Gruppe ======
-''/​tmp/​datei356''​ : +Erzeuge ein Verzeichnis ​''/​srv/​open''​ mit großzügigen Berechtigungen:​ 
-<​file>​+  mkdir -m 777 /srv/open 
 +Erzeuge eine Datei ''/​srv/​open/​datei356'' ​mit folgendem Inhalt
 +<​file ​txt /​srv/​open/​datei356>
 #!/bin/bash #!/bin/bash
 echo executable echo executable
 </​file>​ </​file>​
-  ​chmod 356 /tmp/datei356+ 
 +Setze die Berechtigungen zu ''​356'':​ 
 +  ​chmod 356 /srv/open/datei356
  
 Wer darf was? Wer darf was?
Zeile 107: Zeile 115:
 ^             ​Besitzer| ​ ''​_''​ ''​_''​ ''​_'' ​ |  ''​_''​ ''​_''​ ''​_'' ​     | ^             ​Besitzer| ​ ''​_''​ ''​_''​ ''​_'' ​ |  ''​_''​ ''​_''​ ''​_'' ​     |
 ^       nicht Besitzer| ​ ''​_''​ ''​_''​ ''​_'' ​ |  ''​_''​ ''​_''​ ''​_'' ​     | ^       nicht Besitzer| ​ ''​_''​ ''​_''​ ''​_'' ​ |  ''​_''​ ''​_''​ ''​_'' ​     |
 +
 +Tip:
 +Das Lesen (''​r''​) von Dateien kann man mit
 +  head -0 /​srv/​open/​datei356
 +testen. ((''​head -0''​ zeigt die ersten 0 Zeilen, also nichts, aber öffnet die Datei. Im Fehlerfall erscheint eine Meldung. ))
 +Das Schreiben (''​w''​) von Dateien kann man zerstörungsfrei mit
 +  >> /​srv/​open/​datei356
 +testen. ​
 +((
 +  sysctl fs.protected_regular
 +<​file>​
 +fs.protected_regular = 2
 +</​file>​
 +
 +https://​www.kernel.org/​doc/​Documentation/​sysctl/​fs.txt:​
 +//This protection is similar to protected_fifos,​ but it
 +avoids writes to an attacker-controlled regular file, where a program expected to create one.
 +
 +When set to "​0",​ writing to regular files is unrestricted.
 +
 +When set to "​1"​ don't allow O_CREAT open on regular files that we don't own in world writable sticky directories,​ unless they are owned by the owner of the directory.
 +
 +When set to "​2"​ it also applies to group writable sticky directories.//​
 +))
 +Das Ausführen (''​x''​) kann man testen, in dem man 
 +  /​srv/​open/​datei356
 +ausführt.
 ====== Beispiel: Gruppenzugehörigkeiten kleben am Prozess länger als man denkt ====== ====== Beispiel: Gruppenzugehörigkeiten kleben am Prozess länger als man denkt ======
   groupadd projekt   groupadd projekt
   useradd -m -G projekt iw   useradd -m -G projekt iw
   touch /tmp/datei   touch /tmp/datei
-  chown root:​projekt+  chown root:​projekt ​/tmp/datei
   chmod g+w /tmp/datei   chmod g+w /tmp/datei
   su - iw   su - iw
Zeile 128: Zeile 163:
   useradd -m raumpflege   useradd -m raumpflege
   ls -l /home   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 ====== ====== Beispiel: Auswirkung von mount-Optionen ======
Zeile 135: Zeile 180:
  
 Weitere Mount-Optionen mit Auswirkungen auf Dateirechte: ​ Weitere Mount-Optionen mit Auswirkungen auf Dateirechte: ​
-|Option ​|Bedeutung|+^Option ​^Bedeutung|
 |nodev ​ |Gerätedateien sind nicht erlaubt| |nodev ​ |Gerätedateien sind nicht erlaubt|
 |noexec | Ausführbare Dateien sind nicht erlaubt | |noexec | Ausführbare Dateien sind nicht erlaubt |
Zeile 176: Zeile 221:
   ls -l /​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 ]]+
  
admin_grundlagen/dateirechte.1484347668.txt.gz · Zuletzt geändert: 2017/01/13 22:47 von ingo_wichmann