5

我想在本地机器上执行一个需要 sudo 的命令。因此,正如文档所建议的那样,我使用了本地命令,但它要求我输入密码。我怎样才能避免这种情况?有什么地方可以保存我的本地机器密码吗?

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

3 回答 3

5

如果您不打算共享 fabfile,您可以使用:

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

根据 sudo 手册页:

-S (stdin) 选项使 sudo 从标准输入而不是终端设备读取密码。密码后面必须跟一个换行符。

于 2012-11-14T18:09:32.290 回答
4

检查visudo命令,这将允许您编辑/etc/sudoers文件,您可以在其中定义机器上的用户、命令和密码要求(例如,用户 mlzboy 不需要输入密码即可执行/etc/init.d/tomcat6)。不要忘记这会造成安全问题。

苏多尔手册

于 2010-10-15T11:36:16.360 回答
2

如果您想使用 sudo 但在环回 ip 上:

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

无需编辑 sudoers,因为您有一个在本地运行的 ssh 服务器。

于 2015-12-13T13:32:24.783 回答