Altere o proprietário em seu próprio diretório

0

Eu tenho um script em execução com o usuário user1:user1 , fazendo operações dentro de um diretório dir . No final do script, gostaria de usar o chown para alterar o proprietário do script para user2:user2

Mas isso não funciona. Eu tentei a mesma operação, logado como user1:

$ ls -l
drwxr-xr-x 5 user1 user1 4096 Jan 11 10:58 dir
$ chown -R user2:user2 dir
chown: changing ownership of dir: Operation not permitted

Por que não posso alterar o proprietário de meus próprios arquivos / repertórios? Existe outra maneira de usar um acesso root para fazer isso?

UPDATE

O script faz um clone git e, em seguida, um rsync com um diretório Apache. Novos arquivos têm como proprietário o usuário atual, mas eu preciso que o Apache seja o proprietário.

    
por ôkio 11.01.2016 / 16:37

1 resposta

2

O comando chown está disponível apenas para root , por motivos de segurança, portanto, se você quiser fazer isso, terá que fazer isso como root.

Existem duas coisas que você pode fazer:

  • Use o SETUID bit. Dessa forma, você está permitindo que os usuários executem o script como root (embora também tenha preocupações de segurança, dependendo do que seu script faz). Mais sobre este aqui .

  • Você também pode criar uma fila baseada em tarefas (por exemplo, usando redis ). O script inseria um valor na fila quando executado e um script é executado como root e leria a fila e faria as alterações necessárias (no seu caso, use chown nesse arquivo).

por 11.01.2016 / 16:42