Fabric:本地命令使用

5 投票
3 回答
12096 浏览
提问于 2025-04-16 05:32

我想在本地机器上执行一个需要超级用户权限(sudo)的命令。根据文档的建议,我使用了本地命令,但它让我输入密码。我该怎么做才能避免输入密码呢?有没有什么地方可以保存我本地机器的密码?

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

3 个回答

2

如果你想在回环IP上使用sudo:

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

只要你本地有运行的ssh服务器,就不需要编辑sudoers文件。

5

如果你不打算分享这个fabfile,你可以使用:

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

根据sudo的手册:

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

4

查看一下 visudo 命令,这个命令可以让你编辑 /etc/sudoers 文件。在这个文件里,你可以定义哪些用户可以执行哪些命令,以及他们在执行这些命令时是否需要输入密码(比如,用户 mlzboy 可以在不输入密码的情况下执行 /etc/init.d/tomcat6)。不过要注意,这样做可能会带来安全隐患。

Sudoers 手册

撰写回答