Kann ich einen symbolischen Link zu einer Datei erstellen, auf die ich nicht zugreifen kann?

8

[ Haftungsausschluss : Diese Frage hat keine böswillige Absicht. Ich versuche, den Befehl ln -s für ein Schulprojekt zu verstehen.]

Angenommen, ich habe ein Dateisystem mit meinem Home-Ordner /home/anna. /home/bobist ein Ordner, auf den ich nicht zugreifen kann, mit einer Datei, auf die ich nicht zugreifen kann.foo.txt

Kann ich erfolgreich ln -s /home/bob/foo.txtin meinem Home-Ordner ausgeführt werden? Ist es richtig anzunehmen, dass wenn ich kann, ein Link erzeugt wird, auf den ich nicht zugreifen kann (mit den gleichen Berechtigungen wie foo.txt)?

Was ist, wenn ich Leseberechtigungen hatte foo.txt, nur keinen Zugriff darauf /home/bob?

Was ist mit dem umgekehrten Fall, in dem ich zugreifen, /home/bobaber nicht lesen konnte foo.txt?

MyStackRunnethOver
quelle
4
Sie können einen Symlink zu praktisch allem erstellen, einschließlich zu Dingen, die nicht vorhanden sind.
Muru
1
Technisch gesehen hat s symlink keine eigenen Berechtigungen und lszeigt dies lrwxrwxrwxnormalerweise als , so dass es ein wenig falsch ist, über Berechtigungen eines Links zu sprechen.
Henrik unterstützt die Community

Antworten:

9

Ja, Sie können einen symbolischen Link zu einem beliebigen Ort erstellen .

Kann ich erfolgreich ln -s /home/bob/foo.txtin meinem Home-Ordner ausgeführt werden? Ist es richtig anzunehmen, dass wenn ich kann, ein Link erzeugt wird, auf den ich nicht zugreifen kann (mit den gleichen Berechtigungen wie foo.txt)?

Richtig. Es gelten die Zugriffsbeschränkungen der Zieldatei. Wenn Sie einen Symlink zu einer eingeschränkten Ressource erstellen, können Sie einfach nicht darauf zugreifen. Es ist nicht einmal erforderlich, dass die Zieldatei tatsächlich vorhanden ist.

Eine Demo:

$ ln -s /etc/shadow foo
$ file foo
foo: symbolic link to /etc/shadow
$ cat foo
cat: foo: Permission denied

$ ln -s /etc/nonexistent bar
$ file bar
bar: broken symbolic link to /etc/nonexistent

Was ist, wenn ich Leseberechtigungen hatte foo.txt, nur keinen Zugriff darauf /home/bob?

Wenn Sie keine Berechtigungen für das übergeordnete Verzeichnis haben, können Sie nicht auf die enthaltene Datei zugreifen . Mit einem Symlink könnten Sie also immer noch nicht darauf zugreifen. Das Erstellen eines Symlinks wirkt sich nicht auf die Berechtigungen aus.

Was ist mit dem umgekehrten Fall, in dem ich zugreifen, /home/bobaber nicht lesen konnte foo.txt?

Auch hier können Sie einen Symlink erstellen, aber nicht auf die Datei zugreifen.

Arminius
quelle
2
@ 4o2 Da dies korrekt ist, kommentiere ich hier, um näher darauf einzugehen. Ihre Frage hat mehr mit Berechtigungen zu tun, die Sie ordnungsgemäß markiert haben, und ist bei Exchange willkommen. Wenn ein Benutzer erstellt wird, erhält er ein Verzeichnis unter /homeund wird in eine Gruppe mit demselben Namen wie sein Benutzername eingeordnet, dh der Benutzer bob befindet sich in der Gruppe bob, bis er anderen hinzugefügt wird, um zu verhindern, dass Benutzer die Dateien der anderen lesen. Früher gehörten alle Benutzer zu Gruppenbenutzern, was die böswillige Absicht erlaubte, auf die Sie anspielten. Damit Anna Bobs Dateien sehen kann, muss Bob sie zur Gruppe Bob hinzufügen.
eyoung100