O Linux, como a maioria dos sistemas Unix (o Apple OS / X é uma das raras exceções), ignora as permissões nos links simbólicos quando se trata de resolver seus destinos, por exemplo.
No entanto, a propriedade dos links simbólicos, como outros arquivos, é relevante quando se trata da permissão para renomear ou desvincular suas entradas em diretórios com o t
bit definido, como /tmp
.
Para poder remover ou renomear um arquivo (link simbólico ou não) /tmp
, você precisa ser o proprietário do arquivo. Essa é uma das razões pelas quais alguém pode querer alterar a propriedade de um link simbólico (para conceder ou remover permissão para desvincular / renomear).
$ ln -s / /tmp/x
$ rm /tmp/x
# OK removed
$ ln -s / /tmp/x
$ sudo chown -h nobody /tmp/x
$ rm /tmp/x
rm: cannot remove ‘/tmp/x’: Operation not permitted
Além disso, como mencionado por Mark Plotnick em sua resposta agora excluída , os aplicativos de backup e arquivamento precisam lchown()
restaurar links simbólicos para seus proprietários originais. Outra opção seria alternar euid e egid antes de criar o link simbólico, mas isso não seria eficiente e complicaria o gerenciamento correto no diretório em que o link simbólico é extraído.
lrwxrwxrwx
. Achmod
não faz sentido aqui. Seguir o link leva você às permissões de destino.