[Haftungsausschluss: diese Frage ist nicht böswillig gemeint, ich versuche, den Befehl ln -s für ein Schulprojekt zu verstehen]
Angenommen, ich habe ein Dateisystem mit meinem Home-Ordner /home/anna
. /home/bob
ist 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.txt
in meinem Home-Ordner ausführen? Ist die Annahme richtig, dass in diesem Fall ein Link erstellt wird, auf den ich (mit denselben Berechtigungen wie foo.txt
) nicht zugreifen kann?
Was wäre, wenn ich Leserechte für hätte foo.txt
, aber nur keinen Zugriff auf /home/bob
?
Was ist mit dem umgekehrten Fall, in dem ich zwar zugreifen, /home/bob
aber nicht lesen kann foo.txt
?
Antwort1
Ja,Sie können einen symbolischen Link erstellen zubeliebigStandort.
Kann ich erfolgreich
ln -s /home/bob/foo.txt
in meinem Home-Ordner ausführen? Ist die Annahme richtig, dass in diesem Fall ein Link erstellt wird, auf den ich (mit denselben Berechtigungen wiefoo.txt
) nicht zugreifen kann?
Richtig. Es gelten die Zugriffsbeschränkungen der Zieldatei. Wenn Sie einen symbolischen Link zu einer beschränkten Ressource erstellen, können Sie einfach nicht darauf zugreifen. Es ist nicht einmal erforderlich, dass die Zieldatei tatsächlich existiert.
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 wäre, wenn ich Leserechte für hätte
foo.txt
, aber nur keinen Zugriff auf/home/bob
?
Wenn Sie keine Berechtigungen für das übergeordnete Verzeichnis haben,Sie können nicht auf die enthaltene Datei zugreifen. Mit einem symbolischen Link könnten Sie also trotzdem nicht darauf zugreifen. Das Erstellen eines symbolischen Links hat keine Auswirkungen auf die Berechtigungen.
Was ist mit dem umgekehrten Fall, in dem ich zwar zugreifen,
/home/bob
aber nicht lesen kannfoo.txt
?
Auch hier können Sie einen symbolischen Link dazu erstellen, aber nicht auf die Datei zugreifen.