GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Symbolischer Link funktioniert nicht wie erwartet, wenn der Benutzer wechselt?

Symbolischer Link funktioniert nicht, verwendet Standard-UBUNTU 16 LTS… Es zeigt „Erlaubnis verweigert“, wo ich erwartet hatte, Zugriff zu erhalten, funktioniert auch nach chown nicht .

Vollständiges Beispiel:

sudo rm /tmp/file.txt  # if exist, remove

cd ~
sudo chmod 666 data/file.txt
ls -l data/file.txt    # "-rw-rw-rw-" as expected
more data/file.txt     # working fine
sudo ln -sf $PWD/data/file.txt /tmp/file.txt  # fine
ls -l /tmp/file.txt    # "lrwxrwxrwx",  /tmp/file.txt -> /home/thisUser/file.txt
more /tmp/file.txt     # fine

sudo chown -h postgres:postgres /tmp/file.txt

sudo more /tmp/file.txt   #  NOT WORK! but its is sudo! and 666!

Akzeptierte Antwort:

Diese Aktionen sollten zu einer Fehlermeldung führen:Berechtigung verweigert . Das Verzeichnis /tmp , hat Berechtigungen einschließlich des Sticky-Bits. Der Fehler ist ein Ergebnis der Kernelkonfiguration für fs.protected_symlinks .

Um die Einstellung anzuzeigen, sysctl fs.protected_symlinks . Dies entspricht 1 wenn eingestellt. Vorübergehend zu deaktivieren, was nicht empfohlen wird , sysctl -w fs.protected_symlinks=0 . Dauerhaft auszuschalten, was wiederum nicht empfohlen ist verwenden Sie /etc/sysctl.conf .

Siehe patchwork.kernel.org für weitere Informationen.

Um Linkfäule zu vermeiden, folgen die führenden zusammenfassenden Absätze zu symbolischen Links aus dem Hyperlink.

Kees Cook – 2. Juli 2012, 20:17 Uhr

Dies fügt dem Linux VFS Symlink- und Hardlink-Einschränkungen hinzu.

Symlinks:

Eine seit langem bestehende Klasse von Sicherheitsproblemen ist der Symlink-basierte
Time-of-Check-Time-of-Use-Wettlauf, der am häufigsten in weltweit beschreibbaren
Verzeichnissen wie /tmp zu sehen ist. Die übliche Methode zur Ausnutzung dieses Fehlers
besteht darin, Privilegiengrenzen zu überschreiten, wenn einem bestimmten Symlink gefolgt wird (d. h. ein
Root-Prozess folgt einem Symlink, der einem anderen Benutzer gehört). Eine wahrscheinlich
unvollständige Liste mit Hunderten von Beispielen im Laufe der Jahre finden Sie unter:http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=/tmp

Die Lösung besteht darin, Symlinks nur dann zu folgen, wenn sie sich
außerhalb eines Sticky World-Writable-Verzeichnisses befinden, oder wenn die UID des Symlinks und
Follower übereinstimmen, oder wenn der Eigentümer des Verzeichnisses mit dem Eigentümer des Symlinks übereinstimmt.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Ssh funktioniert nicht von einem bestimmten Computer aus?

  3. CentOS/RHEL:Einhängepunkt /tmp wird nicht automatisch eingehängt, wenn er in /etc/fstab hinzugefügt wird

  4. ldconfig-Fehler:ist kein symbolischer Link

  5. Warum erstellt mein symbolischer Link eine Datei und keinen Ordner?

Warum funktioniert mein symbolischer Link nicht?

Wie kann die Ausgabe eines Befehls in eine Datei umgeleitet werden, wenn der Befehl Benutzereingaben auffordert?

unix:///var/run/supervisor.sock keine solche Datei

/etc/motd wird bei Named Pipe nicht angezeigt?

So ändern Sie das Standard-/tmp in /home/user/tmp

Unterschied und korrekte Verwendung für /tmp und /var/tmp