Não é possível alterar o proprietário (usuário ou grupo) do diretório no qual tenho todos os direitos?

4

TL; DR: Por que estou recebendo a operação não permitida? E como posso resolver isso?

Estou enfrentando um problema que não consigo resolver. Estou criando um diretório como usuário a: group a), que eu quero mudar para o usuário b: group a. Eu não entendo porque esta operação não é permitida. Isso é o que está acontecendo:

user a@foo:~$ mkdir /home/user b/foo/test             
uber a@foo:~$ chmod 0777 /home/user b/foo/test
user a@foo:~$ ls -alF /home/user b/foo/ | grep test
drwxrwxrwx 2 user a            group a 4096 Jan  6 19:53 test/
user a@foo:~$ chown user b:group a /home/user b/foo/test
chown: changing ownership of '/home/user b/foo/test': Operation not permitted

(eu mudei o nome do usuário e do grupo para simplificar)

Outras coisas que podem ser relevantes:

  • O usuário A está no grupo A e no grupo B.
  • O usuário B está no grupo B.
  • Diretório foo em / home / user b tem 0750 e é de propriedade do Usuário B: Grupo A.

Estou ansioso para entender como esta operação não é permitida e como posso resolver isso (uma solução sem usar o sudo é uma vantagem)?

    
por Bjorn 06.01.2012 / 17:12

2 respostas

11

Você só pode alterar a propriedade de um arquivo se você estiver root (ou tiver o recurso CAP_CHOWN Posix). Isso ocorre porque distribuir arquivos acionaria algumas questões de segurança (por exemplo, se as cotas dos discos estivessem ativadas, você poderia preencher a cota do usuário b).

Use o sudo chown se tiver permissão para fazer isso e funcionará.

No entanto, você pode alterar o grupo proprietário para um grupo do qual é membro, por isso você deve ser capaz de "agrupar b" "/ home / usuário b / foo / teste", que pode ser uma alternativa para compartilhar arquivos com o usuário b sem se tornar root, dependendo do que você está tentando alcançar.

Para permissões mais flexíveis, talvez você queira pesquisar em ACLs.

    
por 06.01.2012 / 18:38
0

Parte A:
A operação não é permitida porque apenas o proprietário e a raiz (TBOMK).

Parte B: A resposta agora é óbvia. Ou faça o usuário b fazê-lo, ou talvez você tenha que morder a bala e usar o sudo. Se você não quiser usar o sudo, eu suponho que é porque você não tem root e terá que fazer com que outra pessoa o faça, mas essas parecem ser as únicas duas soluções.

    
por 06.01.2012 / 18:28