Unter Linux ist es möglich, den Eigentümer oder den Gruppenbesitzer eines symbolischen Links (Symlink) zu ändern. Ich habe mich gefragt, warum jemand das tun möchte, da die Berechtigungen eines Symlinks beim Zugriff auf eine Datei nicht verwendet werden.
Ich kann mir nur einen Anwendungsfall vorstellen, bei dem es nützlich sein könnte: einem Benutzer das Löschen eines Symlinks in einem Verzeichnis mit Sticky Bit zu ermöglichen.
Kennen Sie andere Fälle, in denen es nützlich sein könnte, den Eigentümer oder Gruppenbesitzer eines Symlinks zu ändern?
mv myfile foo
, und root ändert am Ende den Eigentümer vonmyfile
. Mussmyfile
aber eine Datei sein, die Eve erstellen oder in dieses Verzeichnis verschieben kann, es darf keine Datei auf dem System sein.chown -h
als Vorsichtsmaßnahme verwenden kann, wenn man den Besitz einer Datei ändert, die kein Symlink sein soll, aber dennoch sein könnte (ein Randfall, IMO). Es erklärt nicht, warum man den Besitz einer Datei ändern möchte, die eigentlich als Symlink gedacht ist, wie in der Frage gestellt.chown
den Eigentümer einer "Datei außerhalb des Baums" ändern? Sie ändern lediglich den Eigentümer des Verzeichnisses.chown -R
, das den(l)chown
Systemaufruf für jeden Verzeichniseintrag aufruft . Wenn der Verzeichniseintrag ein symbolischer Link ist, dürfen Sie denchown
Systemaufruf nicht aufrufen, da dies das Ziel des Links beeinflussen würde, das sich möglicherweise außerhalb des Baums befindet.Apache kann so konfiguriert werden, dass es nur dann Symlinks folgt, wenn der Eigentümer des Links mit dem Eigentümer des Ziels übereinstimmt. Dies kann verhindern, dass Benutzer Links für den Webzugriff auf Dateien erstellen, die sie nicht besitzen (z. B. / etc / passwd).
... Nehmen wir also an, Sie als Root wollten , dass Apache einem Link folgt, um eine bestimmte Protokolldatei anzuzeigen, die xymon oder etwas anderem gehört, aber Sie wollten die Sicherheit von Apache nicht lockern, indem Sie ihm erlauben, Symlinks unabhängig vom Eigentümer zu folgen . Dann möchten Sie vielleicht xymon zum Eigentümer des Symlinks machen.
quelle
/etc/passwd
, hat der Badguy möglicherweise Lesezugriff auf diese Datei, ohne über einen anderen lokalen Zugriff zu verfügen - würde jedoch durch den Symlink, der Apache gehört, vereitelt.Die erste Antwort scheint die Frage nicht zu beantworten, und die zweite gilt nur für Apache.
Eine Sache, die ich mir für Linux im Allgemeinen vorstellen kann, ist, dass es einem normalen Benutzer nur möglich ist, einen festen Link zu einem symbolischen Link herzustellen, wenn der Benutzer der Eigentümer des symbolischen Links ist. Warum man so einen Link machen möchte, weiß ich nicht.
Eine andere Sache ist, dass ein gewöhnlicher Benutzer den Gruppenbesitz einer Datei nur ändern kann, wenn der Benutzer die Datei besitzt (und auch Mitglied der Gruppe ist, zu der die Datei hinzugefügt wird). Dies wirft die Frage auf, wovon der Gruppenbesitz ist eine symbolische Verknüpfung tut. In einer Organisation kann es als Tag nützlich sein, anzugeben, welches Team den Link benötigen würde.
Zumindest unter Ubuntu kann jeder den Zeitstempel eines symbolischen Links aktualisieren. Es kann jedoch einige Systeme geben, die dies nur dem Eigentümer erlauben. Ich bin mir nicht sicher, was der Zeitstempel für einen symbolischen Link bringt, aber er kann nützliche Informationen darüber geben, wie oft er verwendet wird.
Bearbeiten: Ich habe gerade einen weiteren Grund erkannt, warum Eigentum wichtig sein würde. Der Link kann sich in einem klebrigen Verzeichnis befinden, in dem nur der Eigentümer einer Datei sie löschen oder umbenennen kann.
quelle
Ich habe ein Programm, das an eine Protokolldatei angehängt wird. Diese Protokolldateien werden monatlich mit jeweils einem anderen Namen erstellt. Anstatt die Software den genauen Dateinamen herausfinden zu lassen, verwende ich einen "generischen" Dateinamen (z. B. data.log), einen symbolischen Link, der auf die aktuelle Datei für diesen Monat verweist. Dies wird bei einem Cron-Job automatisiert.
Wenn jetzt eine neue monatliche Datei erstellt wird, muss der symbolische Link auf die neue Datei verweisen. Wenn ein Eigentümer- / Gruppenkonflikt vorliegt, kann die Software die symbolische Verknüpfung nicht ändern. Sie benötigen also Eigentums- / Gruppenschreibrechte, um die symbolische Verknüpfung zu ändern.
quelle
Wenn Sie einen Link zu einer Datei auf Ihrem Startbildschirm haben möchten, muss sich der symbolische Link in der befinden
"/ home / username / Desktop"
Verzeichnis.
Und der symbolische Link selbst muss root: root (0: 0) besitzen, sonst funktioniert der Link nicht.
(Ubuntu / Debian etc.)
quelle