Це залежить від того, як ви телефонуєте chmodта платформи, на якій ви працюєте.
Наприклад, в системі Linux man chmodце говорить:
chmod ніколи не змінює дозволи символічних посилань; chmod
системний виклик не може змінювати їх дозволу. Це не є проблемою, оскільки дозволи символічних посилань ніколи не використовуються. Однак для кожного символьного посилання, вказаного в командному рядку, chmodзмінюються дозволи файлу, що вказується. На відміну від цього, chmodігнорується символічні посилання, що виникають під час рекурсивного обходу каталогів.
Однак на Mac, chmod можна використовувати для зміни дозволів символічного посилання, використовуючи такі параметри, як цей (від man chmod):
-h Якщо файл є символьним посиланням, змініть режим самого посилання, а не файл, на який вказує посилання.
Для прикладу, давайте припустимо, що ви знаходитесь на машині Linux для решти цієї відповіді.
Якщо в першому випадку ви запустите chmod -R 777 directoryрекурсивно змінювати дозволи, ціль посилання не вплине, але якщо ви це зробите chmod 777 directory/*, це буде.
Якщо ви зміните дозволи на ціль посилання безпосередньо, ці дозволи будуть виконуватись (оскільки, як кажуть man-сторінка та baraboom , фактичні дозволи на посилання не використовуються ні для чого).
Журнал випробувань для ілюстрації:
$ mkdir dir && touch dir/file{1,2} /tmp/file3 && ln -s {/tmp,dir}/file3
$ ls -l dir/* /tmp/file3
-rw-r--r-- 1 user group 0 2011-06-27 22:02 /tmp/file3
-rw-r--r-- 1 user group 0 2011-06-27 22:02 dir/file1
-rw-r--r-- 1 user group 0 2011-06-27 22:02 dir/file2
lrwxrwxrwx 1 user group 10 2011-06-27 22:02 dir/file3 -> /tmp/file3
$ chmod -R 777 dir && ls -l dir/* /tmp/file3
-rw-r--r-- 1 user group 0 2011-06-27 22:02 /tmp/file3
-rwxrwxrwx 1 user group 0 2011-06-27 22:02 dir/file1
-rwxrwxrwx 1 user group 0 2011-06-27 22:02 dir/file2
lrwxrwxrwx 1 user group 10 2011-06-27 22:02 dir/file3 -> /tmp/file3
$ chmod 700 dir/* && ls -l dir/* /tmp/file3
-rwx------ 1 user group 0 2011-06-27 22:02 /tmp/file3
-rwx------ 1 user group 0 2011-06-27 22:02 dir/file1
-rwx------ 1 user group 0 2011-06-27 22:02 dir/file2
lrwxrwxrwx 1 user group 10 2011-06-27 22:02 dir/file3 -> /tmp/file3