altere o usuário dentro do script bash

1

Eu tenho um script simples que é executado como um usuário comum. Quando lançado do postfix, ele é executado como nobody: nobody, o que impede que muitos comandos funcionem.

É possível que o script mude para outra conta de usuário durante a execução, para permitir a execução desses outros programas?

Obrigado

    
por TSG 16.02.2013 / 23:56

2 respostas

1

Você precisará configurar sudo para poder executar um comando específico como nobody , que será executado como outro usuário.

Geralmente, algo como (no seu arquivo sudoers ):

nobody ALL=(userTheScriptShouldRunAs) NOPASSWD: /home/userTheScriptShouldRunAs/test.sh

Depois, faça seu script ser executado:

sudo -u userTheScriptShouldRunAs /home/userTheScriptShouldRunAs/test.sh
    
por 17.02.2013 / 00:02
0

Você pode definir as permissões de um programa com o bit setuid :

chown usertorunas filename

chmod ug+s filename

Isso fará com que seja executado como o usuário que possui o arquivo.

No entanto, como o @Jay me lembrou, não funciona para scripts. Para executar um script como um usuário diferente, você precisa criar um pequeno programa conforme explicado aqui , que PODE seja setuid e chame seu script.

    
por 16.02.2013 / 23:58