faz um script de shell ser executado como um segundo usuário

1

Estou fazendo um script no qual desejo executar dois serviços como um determinado usuário. O script deve alternar para um usuário e, em seguida, executar um programa e após o programa ter sido executado, ele deve começar a executar o segundo programa.

    
por Mintu 11.03.2016 / 11:10

2 respostas

1

O comando sudo pode ser solicitado para ser executado como um usuário específico:

 -u user, --user=user
             Run the command as a user other than the default target user
             (usually root).  The user may be either a user name or a
             numeric user ID (UID) prefixed with the ‘#’ character (e.g.
             #0 for UID 0).

Então, dentro do seu script, você pode usar sudo -u USERNAME para executar os dois serviços:

sudo -u foo command1
sudo -u foo command2

No entanto, isso significa que o próprio script precisará ser executado como root. Caso contrário, o sudo solicitará a senha do usuário foo .

    
por 11.03.2016 / 11:26
1
sudo -u username -s -- "program1 && program2"

ou

sudo -u username bash -c 'program1 && program2'
    
por 11.03.2016 / 11:18