Su como root e execute o comando em uma linha

5

Eu preciso su como root e executo um comando como uma única linha. Isso é para uso em um script python. O que estou procurando é:

$ su root [some-magic] sh /home/jay/script-that-needs-executing-as-root.sh
<script output>

Isto está em um servidor ubuntu público-ish. A conta em que isso será executado não tem senha, mas foi configurada de modo que basicamente tudo é inacessível, além de um script python que é somente leitura e em ~ / .profile, no final é

cd ~/py/main
python3 start.py
logout

Portanto, eles não têm acesso real ao servidor. Dentro do script python eu tenho o su funcionando, então se for necessário o usuário pode digitar shellasroot no script python, digitar a senha do root e executar comandos, mas eu estou procurando uma maneira de fazer isso programaticamente.

TL; DR - Em uma conta sem privelages sudo, eu preciso executar um script de shell, como root, em uma linha.

    
por Jay Williams 19.07.2016 / 17:56

1 resposta

11

Você pode usar a opção -c de su para passar um único comando.

su root -c 'sh /home/jay/script-that-needs-executing-as-root.sh'
    
por 19.07.2016 / 18:06

Tags