[ Отказ от ответственности : в этом вопросе нет злого умысла, я пытаюсь понять команду ln -s для школьного проекта]
Скажем, у меня есть файловая система с моей домашней папкой /home/anna
. /home/bob
это папка, к которой у меня нет доступа, с файлом, к которому у меня нет доступа,foo.txt
Могу ли я успешно запустить ln -s /home/bob/foo.txt
в своей домашней папке? Правильно ли предположить, что если я смогу, то создаст ссылку, к которой я не могу получить доступ (с теми же разрешениями, что и foo.txt
)?
Что если у меня были права на чтение foo.txt
, а не доступ /home/bob
?
Как насчет обратного случая, когда я мог получить доступ, /home/bob
но не читать foo.txt
?
permissions
symlink
MyStackRunnethOver
источник
источник
ls
, какlrwxrwxrwx
правило , будет показывать, что as , так что немного ошибочно говорить о правах доступа.Ответы:
Да, вы можете создать символическую ссылку на любое место.
Правильный. Применяются ограничения доступа к целевому файлу. Если вы создадите символическую ссылку на ограниченный ресурс, вы просто не сможете получить к нему доступ. Даже не требуется, чтобы целевой файл действительно существовал.
Демо:
Если у вас нет прав доступа к родительскому каталогу, вы не сможете получить доступ к содержащемуся файлу . Таким образом, с символической ссылкой вы все равно не сможете получить к ней доступ. Создание символической ссылки не влияет на разрешения.
Опять же, вы можете создать символическую ссылку на него, но не получить доступ к файлу.
источник
/home
и помещается в группу с тем же именем, что и его имя пользователя, то есть пользователь bob находится в группе bob, пока его не добавят к другим, чтобы пользователи не могли читать файлы друг друга. В прежние времена все пользователи принадлежали к группе пользователей, что позволяло намекать злонамеренные намерения. Чтобы Анна увидела файлы Боба, Боб должен добавить ее в группу Боба.