Могу ли я создать символическую ссылку на файл, к которому у меня нет доступа?

Могу ли я создать символическую ссылку на файл, к которому у меня нет доступа?

[Отказ от ответственности: в этом вопросе нет злого умысла, я пытаюсь понять команду ln -s для школьного проекта]

Допустим, у меня есть файловая система с моей домашней папкой, /home/anna. /home/bob— это папка, к которой я не могу получить доступ, с файлом, к которому я не могу получить доступ,foo.txt

Могу ли я успешно запустить ln -s /home/bob/foo.txtв своей домашней папке? Правильно ли предположить, что если я смогу, то это создаст ссылку, к которой я не смогу получить доступ (с теми же разрешениями, что и foo.txt)?

А что, если у меня ЕСТЬ права на чтение foo.txt, но нет доступа к /home/bob?

А как насчет обратного случая, когда я могу получить доступ /home/bob, но не могу читать foo.txt?

решение1

Да,вы можете создать символическую ссылку налюбойрасположение.

Могу ли я успешно запустить ln -s /home/bob/foo.txtв своей домашней папке? Правильно ли предположить, что если я смогу, то это создаст ссылку, к которой я не смогу получить доступ (с теми же разрешениями, что и foo.txt)?

Правильно. Применяются ограничения доступа целевого файла. Если вы создаете символическую ссылку на ограниченный ресурс, вы просто не сможете получить к нему доступ. Даже не требуется, чтобы целевой файл фактически существовал.

Демонстрация:

$ 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

А что, если у меня ЕСТЬ права на чтение foo.txt, но нет доступа к /home/bob?

Если у вас нет прав доступа к родительскому каталогу,вы не можете получить доступ к содержащемуся файлу. Так что с помощью симлинка вы все равно не сможете получить к нему доступ. Создание симлинка не влияет на разрешения.

А как насчет обратного случая, когда я могу получить доступ /home/bob, но не могу читать foo.txt?

Опять же, вы можете создать символическую ссылку на него, но не получить доступ к файлу.

Связанный контент