2010-10-15 10 views
5

Quiero ejecutar un comando que necesita sudo en la máquina local. Entonces, como sugiere la documentación, utilicé el comando local, pero me pide que ingrese la contraseña. ¿Cómo puedo evitar esto? ¿Hay algún lugar donde pueda guardar la contraseña de mi máquina local?Tela: uso de comandos locales

local('sudo /etc/init.d/tomcat6 start',capture=True) 

Respuesta

4

Comprobar el comando visudo, lo que le permitirá editar el archivo /etc/sudoers, en la que se pueden definir usuarios, comandos y password-requisitos en una máquina (por ejemplo mlzboy usuario no necesita introducir la contraseña con el fin de ejecutar /etc/init.d/tomcat6). No olvide que esto puede crear un problema de seguridad.

Sudoers manual

4

Si no va a compartir la fabfile puede utilizar:

echo "password\n" | sudo -S /etc/init.d/tomcat6 start 

acuerdo con la página man sudo:

Las causas -S (entrada estándar) de opción sudo para leer la contraseña de la entrada estándar en lugar del dispositivo terminal. La contraseña debe ir seguida de un carácter de nueva línea.

+0

¡Brillante! Funcionó como encanto! – deeshank

1

Si desea utilizar sudo, pero en la IP de bucle invertido:

from fabric.api import sudo,env 
env.hosts =['127.0.0.1'] 
sudo('aptitude search fabric') 

No hay necesidad de editar sudoers, dado que tiene un servidor ssh corriendo localmente.

Cuestiones relacionadas