Usar chown para alterar o proprietário do grupo de um diretório não é permitido ... Por quê?

10

Estou tentando executar chownem um diretório que possui as seguintes permissões e proprietários:

drwxrwxr-x 2 justin devs  4096 Jan  1 20:42 test

Estou tentando simplesmente executar o seguinte como justinusuário:

chown justin:nginx test

Então, basicamente, basta mudar o proprietário do grupo para nginx, mas estou recebendo:

chown: changing ownership of `test/': Operation not permitted

Alguma ideia?

Justin
fonte

Respostas:

15

Primeiro, use o chgrpcomando em vez de chown e que vai funcionar.

No caso de usar chown ..... Por motivos de segurança na maioria dos contextos Linux, qualquer alteração de propriedade é restrita ao evento do usuário root, mesmo que você esteja marcado como o proprietário do arquivo, diretório, etc. Em um caso, isso evita que os usuários evitem cotas, definindo os bits de permissão de arquivo como 777 e alterando a propriedade de um arquivo para outro usuário desconhecido e consumindo sua cota.

Portanto, o uso do chowncomando no contexto do usuário, especialmente onde a propriedade não está sendo alterada, não deve ser usado apenas para alterar o grupo de um arquivo.

NOTA: Você deve ser um membro do grupo para o qual está tentando alterar o arquivo. Isso pode ser verificado por id -a. Se você não estiver no grupo, receberá esta mensagem mesmo que seja o proprietário do arquivo.

mdpc
fonte
1
A mesma coisa com chgrp nginx test, Operação não permitida.
Justin
Se você estiver executando o comando chgrp como o proprietário do inode, isso deve funcionar. O seu sistema de arquivos está montado SOMENTE LER?
MDPC
Não, não funciona. Aqui está um caso de teste:$ mkdir test $ chgrp nginx test/ chgrp: changing group of test/: Operation not permitted $ ll total 4 drwxrwxr-x 2 justin justin 4096 Jan 1 21:18 test
Justin
1
Entendi ... você não pode alterar a propriedade para um grupo no qual não está autorizado a participar. Verifique id -ase o grupo para o qual você está tentando alterar o arquivo está disponível.
Mdpc
1
Sim, essa é a solução.
Mdpc
4

Você precisa fazer parte do grupo para poder alterar a propriedade atual do grupo para. Você pode editar o /etc/groupsarquivo como root para garantir que o usuário justin faça parte do grupo nginx. Depois de fazer alterações no grupo, é necessário se conectar novamente ao sistema para afetá-lo ou mudar para o grupo sem uma reinicialização / logout, você pode usar o cmd newgrp nginx.

Agora você deve poder alterar o grupo do arquivo ou pasta com cmd chgrp nginx testcomo justin do usuário.

Cloudmeteor
fonte