Quais permissões são necessárias para executar o comando chmod, chown em uma pasta / item?

9

Sempre executei comandos chmod / chown como um usuário sudo. Mas hoje me perguntei se não uso sudo, de que permissões preciso para realmente executar o chmod/chowncomando em uma pasta / arquivo? Eu tentei pesquisar a pergunta no Google, mas nada apareceu que responda especificamente a essa pergunta.

Maxim Koretskyi
fonte

Respostas:

18

No Linux:

chown : "Apenas um processo privilegiado (Linux: um com a CAP_CHOWN capacidade) pode mudar o proprietário de um arquivo." (Fonte: chown (2)) A maneira mais fácil de ser esse processo é ser executada root. Veja explain_chownajuda para descobrir por que um determinado chownfalhou. Veja capabilitiesmaneiras de fornecer aos processos esse recurso além de executar como root.

chmod : o proprietário do arquivo ou rootpode alterar as permissões, além de outros processos com o CAP_FOWNERrecurso. (Fonte)

chgrp : "O proprietário de um arquivo pode alterar o grupo do arquivo para qualquer grupo do qual esse proprietário seja membro. Um processo privilegiado (Linux: com CAP_CHOWN) pode alterar o grupo arbitrariamente." (chown (2))

cxw
fonte
1
O Linux começou a implementar recursos por volta de 2004, mas a proposta POSIX relacionada já havia sido retirada em 1997. Se você estiver em um sistema operacional moderno como o Solaris, é PRIV_FILE_CHOWNnecessário mostrar todos os arquivos locais e PRIV_FILE_CHOWN_SELFmostrar os arquivos locais de sua propriedade. BTW: Um sistema operacional que permite exibir arquivos remotos do NFS pode ser visto como um risco de segurança. No HP-UX, qualquer usuário comum pode exibir seus arquivos e isso também é visto como um risco à segurança.
schily
PS: a proposta de POSIX de capacidade foi retirada porque ela lida apenas com os privilégios entre um usuário comum e o usuário raiz histórico. O Solaris possui o dobro de privilégios refinados que o Linux e permite remover privilégios como, por exemplo, fork () e exec ().
schily
Observe que no Linux, quando não é privilegiado, você pode chownos arquivos que possui, mas apenas a parte gid (para qualquer um dos grupos dos quais você é membro). Eu posso fazer chown stephane:other-group myfile(ou chown :other-group) desde que eu seja membro other-group.
Stéphane Chazelas
E o chgrpcomando? Você pode adicionar uma explicação para isso?
Maxim Koretskyi
@ StéphaneChazelas, obrigado, com base na sua resposta, presumo que um proprietário possa executar com êxito chgrpsem ser um usuário privilegiado?
Maxim Koretskyi