2010-10-15 25 views
5

Voglio eseguire un comando che richiede sudo nella macchina locale. Quindi, come suggerisce la documentazione, ho usato il comando locale, ma mi chiede di inserire la password. Come posso evitare questo? C'è un posto dove posso salvare la password del mio computer locale?Fabric: Uso comando locale

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

risposta

4

Controllare il comando visudo, che vi permetterà di modificare il file /etc/sudoers, in cui è possibile definire utenti, i comandi e le password-requisiti su una macchina (ad esempio mlzboy utente non ha bisogno di inserire la password al fine di eseguire /etc/init.d/tomcat6). Non dimenticare che questo può creare un problema di sicurezza.

Sudoers manual

4

Se non avete intenzione di condividere il fabfile è possibile utilizzare:

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

secondo la pagina sudo man:

Le cause -S (stdin) opzione sudo per leggere la password da l'ingresso standard al posto del dispositivo terminale. La password deve essere seguita da un carattere di nuova riga.

+0

Brillante! Ha funzionato come fascino! – deeshank

1

Se si desidera utilizzare sudo, ma sul IP di loopback:

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

Non c'è bisogno di modificare sudoers, dato si dispone di un server ssh in esecuzione a livello locale.

Problemi correlati