Depois que eu fui totalmente na direção errada com este problema, permita-me reafirmar a questão envolvida. Vejamos por que as permissões de link simbólico não têm sentido, então alterá-las ou não não é útil.
Não consigo reproduzir o problema. Em alguns sistemas , as permissões de links simbólicos não podem ser alteradas. Minha experiência é que o Mac OS El Capitan muda as permissões do symlink na maioria das situações, mas as novas permissões não têm efeito.
Conceitualmente, uma alteração nas permissões de um link simbólico não deve ter efeito. Se acessar um arquivo era tão fácil quanto criar um link simbólico e depois alterar as permissões do link simbólico, nenhum arquivo seria seguro.
Eu encontrei este aviso em man 7 symlink
:
The flags, access permissions, owner/group and modification time of an existing symbolic link can be changed by means of [system calls]. Of these, only the flags are used by the system; the access permissions and ownership are ignored.
Aqui está um exemplo extremo.
$ touch myfile
$ ln -s myfile mylink
$ ls -l myfile mylink
-rw-r--r-- 1 user staff 0 Jul 13 14:42 myfile
lrwxr-xr-x 1 user staff 6 Jul 13 14:43 mylink -> myfile
$ chmod -h 000 mylink
$ ls -l myfile mylink
-rw-r--r-- 1 user staff 0 Jul 13 14:42 myfile
ls: mylink: Permission denied
l--------- 1 user staff 6 Jul 13 14:43 mylink
$ echo 'Hello, world!' > mylink
$ cat mylink
Hello, world!
$ ls -l myfile
-rw-r--r-- 1 user staff 14 Jul 13 14:43 myfile
O link simbólico não tem permissões, mas echo
e cat
seguem mylink
para myfile
. echo
escreve para myfile
e cat
lê, ignorando as permissões de link simbólico. NB: As permissões do symlink bloquearam ls
de mostrar o destino do symlink, mas os utilitários ainda seguem o symlink. Por outro lado,
$ chmod 000 myfile
$ chmod -h 777 mylink
$ ls -l myfile mylink
---------- 1 user staff 14 Jul 13 14:43 myfile
lrwxrwxrwx 1 user staff 6 Jul 13 14:43 mylink -> myfile
$ cat mylink
cat: mylink: Permission denied
Retoricamente, não é assim que tem que ser?
Referências (algumas específicas para Mac OS e El Capitan):
-
man 7 symlink
- Seção OPÇÕES DE MANIPULAÇÃO DA ACL de
man chmod
-
man chflags