Mar*_*rin 5 python sudo su fabric
我正在尝试使用fabric来自动执行我在几台服务器上执行的一些管理工作.一般流程如下:
sudo su -成为root(再次提供本地用户密码)不幸的是,使用run('sudo su -')块执行脚本并允许用户输入.当我键入exit或Ctrl+Dscipt恢复,但没有root权限.
我在Fabric中切换用户时遇到了类似的问题,但我受限制,sudo su -因为我不允许更改/etc/sudoers包含以下行的文件:
localuser ALL = /usr/bin/su -
我浏览了织物的来源,试图找到一种解决方法,但没有成功.
小智 2
您的问题有多种解决方案。首先,您想使用 运行命令sudo。您可以使用 Fabric 方法sudo来代替run(runs a shell command on a remote host, with superuser privilegessudo ref)。
例如,这些命令是使用以下命令执行的sudo:
sudo("~/install_script.py")
sudo("mkdir /var/www/new_docroot", user="www-data")
sudo("ls /home/jdoe", user=1001)
result = sudo("ls /tmp/")
Run Code Online (Sandbox Code Playgroud)
另一个想法是您想要包装一组命令(需要编辑sudo)。您可以使用 Fabric 上下文管理器 ( ref ) 来执行此操作。特别是,您可以使用prefix或settings。
例如:
with settings(user='root'):
run('do something')
run('do another thing')
Run Code Online (Sandbox Code Playgroud)
会询问您 root 密码,然后以 root 身份执行命令。您可以调整设置来存储密码。
| 归档时间: |
|
| 查看次数: |
5956 次 |
| 最近记录: |