Cela dépend de la façon dont vous appelez chmod
et la plate-forme sur laquelle vous travaillez.
Par exemple, sur un système Linux, man chmod
dit ceci :
chmod
ne modifie jamais les permissions des liens symboliques ; l'option chmod
l'appel système ne peut pas modifier leurs permissions. Ce n'est pas un problème puisque les permissions des liens symboliques ne sont jamais utilisées. Cependant, pour chaque lien symbolique listé sur la ligne de commande, chmod
modifie le les permissions du fichier pointé. En revanche, chmod
ignore les liens symboliques rencontrés lors des parcours récursifs de répertoires.
Cependant, sur un Mac, chmod peut être utilisé pour modifier les permissions d'un lien symbolique en utilisant des options telles que celle-ci (à partir de man chmod
):
-h Si le fichier est un lien symbolique, changer le mode du lien lui-même plutôt que du fichier vers lequel le lien pointe.
Pour les besoins de l'exemple, supposons que vous êtes sur une machine Linux pour le reste de cette réponse.
Si dans le premier cas vous exécutez chmod -R 777 directory
pour changer récursivement les permissions, la cible du lien ne sera pas affectée, mais si vous faites chmod 777 directory/*
il le fera.
Si vous modifiez les permissions sur la cible du lien directement, ces permissions seront reportées (puisque comme les pages de manuel et les pages d'accueil, les permissions sont modifiées). baraboom les autorisations de liens ne sont pas utilisées pour quoi que ce soit).
Journal de test pour illustration :
$ 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