Depende de como você chama chmod
e da plataforma em que você está executando.
Por exemplo, em um sistema Linux, man chmod
diz isto:
chmod
never changes the permissions of symbolic links; thechmod
system call cannot change their permissions. This is not a problem since the permissions of symbolic links are never used. However, for each symbolic link listed on the command line,chmod
changes the permissions of the pointed-to file. In contrast,chmod
ignores symbolic links encountered during recursive directory traversals.
No entanto, em um Mac, chmod pode ser usado para modificar as permissões de um link simbólico usando opções como essa (de man chmod
):
-h If the file is a symbolic link, change the mode of the link itself rather than the file that the link points to.
Por exemplo, vamos supor que você está em uma máquina Linux pelo resto desta resposta.
Se no primeiro caso você executar chmod -R 777 directory
para alterar as permissões de forma recursiva, o destino do link não será afetado, mas se você usar chmod 777 directory/*
, isso ocorrerá.
Se você alterar as permissões diretamente no destino do link, essas permissões serão executadas (como man page e baraboom digamos, as permissões de link reais não são usadas para nada).
Log de teste para ilustração:
$ 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