Parece que o Linux suporta a alteração do proprietário de um link simbólico (ie lchown
), mas a alteração do modo / permissão de um link simbólico (ie lchmod
) não é suportada . Tanto quanto posso ver, isso está de acordo com o POSIX. No entanto, não entendo por que alguém apoiaria uma dessas operações, mas não ambas. Qual é a motivação por trás disso?
linux
permissions
posix
Florian Brucker
fonte
fonte
lrwxrwxrwx
. Achmod
não faz sentido aqui. Seguir o link leva você às permissões de destino.lchmod
. Mas outros sistemas operacionais semelhantes ao Unix o suportam (por exemplo, Mac OS X ), então a questão é por que o Linux não suporta quando suportalchown
.Respostas:
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).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.fonte
Não existe lchmod () no posix, mas fchmodat () que permitiria definir as permissões de um link simbólico. Isso ainda não exige que as permissões dos links simbólicos sejam avaliadas.
fonte
lchmod
está de acordo com o POSIX. O que essa resposta acrescenta que ainda não está na pergunta?