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

На моем Ubuntu Box у меня есть символическая ссылка:

root@anonymous:/var/tmp# ls -l
total 24
lrwxrwxrwx 1 lab  lab    26 Dec 15 18:27 blank.zip -> /home/admin/important6.zip

Доступ к нему как root дает:

root@anonymous:/var/tmp# more blank.zip 
blank.zip: Permission denied

Если я поменяю владельца на root, хотя:

root@anonymous:/var/tmp# chown -h root:root blank.zip ; more blank.zip 
PK...

3 ответа3

2

chown -h меняет владельца /home/admin/important6.zip не blank.zip . У вас уже есть полный доступ к символической blank.zip от имени пользователя root.

Если вы посмотрите на разрешения важный6.zip, вы без сомнения поймете, почему он не работает.

2

Это происходит из-за функции fs.protected_symlinks . Так как /var/tmp является общедоступным каталогом (доступным для записи всем и с битом закрепления), существует риск того, что кто-то может создать символическую ссылку, например, в /etc/passwd и заставить системную службу записать в нее пользовательские данные. Чтобы избежать этого, символические ссылки, расположенные в «липком» каталоге, следуют только тогда, когда их владелец совпадает.

Смотрите следующие статьи для получения дополнительной информации:

0

Я думаю, что проблема не в владении символической ссылкой, а в владении каталогом /home/admin . Поскольку пользовательская лаборатория не имеет разрешения на просмотр домашнего каталога других пользователей (если не указано иное chmod), символическая ссылка не может следовать.

Поскольку root может просматривать домашний каталог anoyone, смена владельца на root решает проблему в вашем случае.

Вы можете добавить lab к группе admin и chmod /home/admin к 770 (или 740 чтобы просто разрешить чтение членам группы). Обычно домашние каталоги chmod'ed 700 . В целях безопасности не рекомендуется увеличивать разрешение для всех остальных (последние 3 бита).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .