Definir o proprietário e o grupo de um script como root
não significa que ele será executado como root
. Quando o usuário joe
executa um executável, o UID usado para definir as permissões do contexto de execução é o UID de joe
, a menos que você tenha o bit UID definido ( suid
) ativado. Executáveis com suid
ativados serão executados com o UID do proprietário do arquivo.
No entanto, acho que sua abordagem deve ser muito bem pensada, já que suid root
executáveis são um risco de segurança. Um usuário mal-intencionado pode tentar escalar privilégios explorando-os. Se esse for o único arquivo que você precisa manipular, deverá trabalhar com as permissões dele ou exigir que o usuário use sudo
. suid root
executáveis deve ser o último recurso em casos muito específicos.
Observação: Como @psusi comentou sobre os comentários, suid
não funcionará em scripts. Essa resposta descreve muito bem o problema com scripts suid
e por que eles não funcionam a partir do kernel 3. x ligado. Assim, para a sua situação em particular, você tem apenas as opções de alterar permissões nos arquivos / pastas que você precisa para trabalhar, ou usando sudo
(a primeira opção é mais recomendada).