Linux liga o usuário e executa o comando imediatamente

5

Eu tenho um cenário onde eu tenho que mudar para o usuário diferente e depois disso, eu preciso executar o comando Linux.

meu comando é algo parecido com isto

( echo myPassword | sudo -S su hduser ) && bash /usr/local/hadoop/sbin/start-dfs.sh

mas com este comando, mudo para o usuário e o próximo comando foi acionado no usuário anterior.

Existe algum que eu possa fazer isso usando o script de shell

    
por Akash Sethi 26.09.2017 / 07:23

3 respostas

11

Tente.

sudo -H -u TARGET_USER bash -c 'bash /usr/local/hadoop/sbin/start-dfs.sh' 

ou se você quiser passar com senha .

echo TARGET_USER_PASS | sudo -S -H -u TARGET_USER bash -c 'bash /usr/local/hadoop/sbin/start-dfs.sh'

veja homem sudo :

-H

The -H (HOME) option requests that the security policy set the HOME environment variable to the home directory of the target user (root by default) as specified by the password database. Depending on the policy, this may be the default behavior.

-u user

The -u (user) option causes sudo to run the specified command as a user other than root. To specify a uid instead of a user name, use #uid. When running commands as a uid, many shells require that the '#' be escaped with a backslash ('\'). Security policies may restrict uids to those listed in the password database. The sudoers policy allows uids that are not in the password database as long as the targetpw option is not set. Other security policies may not support this.

    
por 26.09.2017 / 08:38
3

Com su user -c "sh /path/command.sh" , você pode executar um comando como usuário .

Eu testei com este comando:

 echo myPassword | sudo -S su - foobar -c "/usr/bin/watch -n 1 cat /etc/resolv.conf"

Depois disso, o watch -n estava rodando como foobar.

Então, acho que seu comando deve funcionar assim:

echo myPassword | sudo -S su - hduser -c "bash /usr/local/hadoop/sbin/start-dfs.sh"
    
por 26.09.2017 / 08:52
1

Você pode tentar este:

pkexec - Execute a command as another user

pkexec [--user username] PROGRAM [ARGUMENTS...]

    
por 26.09.2017 / 10:26