Часто Задаваемые Вопросы по FreeBSD 2.X, 3.X, 4.X и 5.X

         

Почему командой chmod невозможно изменить права на символические ссылки?


Символические ссылки не имеют атрибутов доступа, а по умолчанию утилита chmod(1) не следует символической ссылке для изменения прав доступа к файлу, на который указывает ссылка. Поэтому, если у вас есть файл, скажем, с именем foo и символическая ссылка bar на этот файл, то эта команда всегда будет выполняться успешно.

% chmod g-w bar

Однако права на файл foo не изменятся.

Чтобы это работало, используйте опции -H или -L вместе с опцией -R. Обратитесь к страницам Справочника по команде chmod(1) и по symlink(7).

Внимание: Опция -R выполняет команду chmod(1) РЕКУРСИВНО. Будьте осторожны, задавая каталоги или символические ссылки на каталоги в параметрах chmod(1). Если вы хотите изменить права на каталог, на который указывает символическая ссылка, используйте без опций и следуйте символической ссылке с помощью лидирующего слэша (/). Например, если foo является символической ссылкой на каталог bar, а вы хотите изменить права на foo (на самом деле bar), вы должны выполнить команду типа следующей:

% chmod 555 foo/

Если задан лидирующий слэш, то chmod(1) будет следовать символической ссылке, foo, меняя права на каталог bar.



Содержание раздела