Linux, как и большинство Unix-подобных систем (Apple OS / X является одним из редких исключений), игнорирует разрешения для символических ссылок, когда речь идет, например, о решении их целей.
Однако владение символическими ссылками, как и другими файлами, имеет отношение к разрешению на переименование или отмену связи их записей в каталогах с установленным t
битом, таких как /tmp
.
Чтобы иметь возможность удалить или переименовать файл (символическая ссылка или нет) /tmp
, вы должны быть владельцем файла. Это одна из причин, по которой можно изменить владельца символической ссылки (предоставить или удалить разрешение на удаление / переименование ее).
$ ln -s / /tmp/x
$ rm /tmp/x
# OK removed
$ ln -s / /tmp/x
$ sudo chown -h nobody /tmp/x
$ rm /tmp/x
rm: cannot remove ‘/tmp/x’: Operation not permitted
Кроме того, как отметил Марк Плотник в своем удаленном ответе , приложения lchown()
для резервного копирования и архивирования должны восстанавливать символические ссылки на их первоначальных владельцев. Другим вариантом будет переключение euid и egid перед созданием символической ссылки, но это не будет эффективным и усложнит управление правами в каталоге, в котором извлечена символическая ссылка.
lrwxrwxrwx
. Аchmod
не имеет здесь смысла. Перейдя по ссылке, вы попадете в список разрешений.