Posso sujar um comando em nome de outro usuário?

5

Estou usando o drupal e o Aegir. Aegir automatiza muitas tarefas de criação de sites. Aegir tem o controle do Apache, eu estou logen como root, e eu quero reiniciar o servidor Apache, mas eu quero fazê-lo em nome do Aegirs. Infelizmente eu não sei a senha Aegir, então basicamente eu estou querendo saber como sudo algo como outro usuário.

    
por user379468 08.11.2012 / 19:14

3 respostas

9

sudo -u <username> <command>

sudo aceita um parâmetro do usuário, que o executará como esse usuário.

Como alternativa, já que você é root:

su <username> -c <command>
    
por 08.11.2012 / 19:32
6

su aegir é o que você está procurando, supondo que o nome de usuário seja aegir . man su fornecerá mais informações sobre o comando su .

Esse usuário provavelmente não conseguirá realmente reiniciar o Apache se estiver sendo executado na porta 80, a menos que seja especificamente configurado para ter permissão para fazer isso. Por padrão, root é o único usuário que pode ligar um serviço a um número de porta baixo.

    
por 08.11.2012 / 19:16
1

Você deve ser capaz de fazer o seguinte

runuser -l <username> -c <command>

por exemplo

runuser -l Aegir -c service httpd restart

Mas se você é root, você pode apenas su para o usuário sem uma senha.

su -l Ageir

J

    
por 08.11.2012 / 19:24