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 comoroot
(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, usechown
nesse arquivo).