Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:symbolische_links

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:symbolische_links [2016/01/14 11:09]
ingo_wichmann [verwaiste Symlinks finden]
admin_grundlagen:symbolische_links [2022/07/19 12:29] (aktuell)
Zeile 1: Zeile 1:
-===== Symbolische Links =====+====== Symbolische Links =====
 +===== Grundlegende Beispiele ===== 
 +  cp /etc/passwd .
   ln -s passwd passwd-symlink   ln -s passwd passwd-symlink
   ls -li passwd*   ls -li passwd*
Zeile 6: Zeile 8:
 Übungen 6.22 - 6.24 Übungen 6.22 - 6.24
  
-  ​cp -r /​usr/​share/​doc ​. +=== Übung: cp -a vs. cp -r === 
-  find doc -printf '​%y\n'​ | sort | uniq -c +  ​cp -r /​usr/​share/​doc ​doc-r 
-  rm -r doc +  find doc-r -printf '​%y\n'​ | sort | uniq -c 
-  cp -a /​usr/​share/​doc ​. +  cp -a /​usr/​share/​doc ​doc-a 
-  find doc -printf '​%y\n'​ | sort | uniq -c+  find doc-a -printf '​%y\n'​ | sort | uniq -c
  
-Übrig gebliebene ​Userfiles ​nach dem Löschen des Users dem Benutzer root übergeben: +Unterschiede?​ 
-  find / -xdev -uid 1002 -print0 | xargs -0 chown --no-dereference root+ 
 +===== Wo befinden sich auf meinem System Symlinks? ==== 
 +  find / -xdev -type l -ls 
 +  find / -xdev -type l -printf '​%h\n'​ | uniq -c 
 + 
 +===== Probleme mit Symlinks ===== 
 + 
 +Symlinks werden von machen Entwicklern als problematisch gesehen: https://​lwn.net/​Articles/​899543/​ 
 + 
 +==== Übrig gebliebene ​Dateien eines Users nach dem Löschen des Users dem Benutzer root übergeben ​==== 
 +  find / -xdev -uid 1002 -exec chown --no-dereference root {} +
 ==== verwaiste Symlinks finden ==== ==== verwaiste Symlinks finden ====
-  find  ​. ​-L -type l -ls+  find -L -type l -ls 
 + 
 +==== Link-Schleife ==== 
 +  ln -s a b 
 +  ln -s b a 
 +  # Es geht noch kürzer: ln -s a a 
 + 
 +  cat a 
 +==== Beispiel: Symlink-Attacke ==== 
 +Funktioniert nur, wenn ''​fs.protected_symlinks''​ **aus**geschaltet ist: 
 +  sysctl fs.protected_symlinks 
 +-> ''​fs.protected_symlinks = 0''​ 
 + 
 +Als root: 
 +  echo '​please save me' > /​etc/​save-me 
 +  echo '* * * * * echo "you are lost" > /​tmp/​date-$(date +\%H:​\%M)'​ | crontab - 
 + 
 +Als nutzer: 
 +  ln -s /​etc/​save-me /​tmp/​date-09:​58 
 + 
 +Um 9:58 wird root per cron die Datei ''/​etc/​save-me''​ überschreiben 
 + 
 +==== Beispiel: protected_symlinks ==== 
 +Funktioniert nur, wenn ''​fs.protected_symlinks''​ **ein**geschaltet ist: 
 +  sysctl fs.protected_symlinks 
 +-> ''​fs.protected_symlinks = 1''​ 
 +  mkdir -m 1777 offen.d/ 
 +  cd offen.d/ 
 +  touch datei 
 +  ln -s datei symlink 
 +  sudo chown --no-dereference nobody symlink 
 +  cat symlink 
 +-> ''​Keine Berechtigung''​ bzw. ''​Permission denied''​
  
 +==== Dokus und Links ====
 +  * https://​www.kernel.org/​doc/​Documentation/​sysctl/​fs.txt
 +  * https://​de.wikipedia.org/​wiki/​Symlink-Schwachstelle
admin_grundlagen/symbolische_links.1452769783.txt.gz · Zuletzt geändert: 2016/01/14 11:09 von ingo_wichmann