Fornece a senha do usuário no terminal por meio do argumento

0

Eu criei um aplicativo python na minha máquina Ubuntu que executa comandos no terminal. Eu gostaria quando o programa começar a continuar rodando como root. Eu sei que para obter um terminal raiz usamos o seguinte comando:

sudo -i

em seguida, o shell nos pede para digitar o nosso passe e quando fazemos isso, temos raiz para essa estação terminal até que digitemos

exit

Mas posso definir o parâmetro pass através de um argumento? Então o terminal não irá solicitar uma linha 'give a pass'? Outra questão é quando eu uso um live usb e eu quero correr sudo -i para obter privilégios de root eu preciso digitar um passe ou não?

    
por Nikos KLon 30.07.2015 / 11:06

2 respostas

1

Basta iniciar seu comando com sudo rights:

sudo your_python_script

E NUNCA use sua senha em um parâmetro.

    
por A.B. 30.07.2015 / 14:12
0

Em primeiro lugar, não sei se a lógica está correta com a minha opção, mas certamente funciona.

Primeiro, você cria uma chave rsa pub usando o comando:

ssh-keygen -t rsa

Em seguida, copie e anexe a chave do pub a .ssh/authorized_keys de root usando o comando:

ssh-copy-id root@<your ip>

Depois disso, quando você tentar ssh root@<your ip> , ele não solicitará a senha do root e você poderá obter o prompt root.

Por exemplo, se você deseja executar um script de shell, run.sh in /opt directory como root, a partir do seu login sem solicitar senha, tente isto:

ssh -X root@<your ip> "sh /opt/run.sh"

opção '- X' é usada para definir $DISPLAY para raiz.

Espero que essa ideia ajude.

    
por ATR 30.07.2015 / 14:00