Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:symbolische_links

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:symbolische_links [2016/01/12 16:33] – angelegt ingo_wichmannadmin_grundlagen:symbolische_links [2022/07/19 12:29] (aktuell) – Externe Bearbeitung 127.0.0.1
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.1452616395.txt.gz · Zuletzt geändert: 2016/01/12 16:33 von ingo_wichmann