小编jib*_*has的帖子

Python Fabric Sudo su - 用户

我目前从命令行执行以下操作:

$ ssh myuser@remote-server 
password:
[myuser@remote-server ~]$ sudo su - dev_user
[dev_user@remote-server ~]$ whoami
dev_user
[dev_user@remote-server ~]$
Run Code Online (Sandbox Code Playgroud)

没有权限问题。

myuser 有足够的权限来执行上面输入的操作,但它没有权限执行 sudo su -c whoami dev_user

我尝试了以下代码

from fabric import Connection, task

@task
def abcd(ctx):
    sudo_pass = getpass.getpass("What's your sudo password?")
    config = Config(overrides={'sudo': {'password': sudo_pass}})
    with Connection('dev-server', user='myuser', connect_kwargs={"password": sudo_pass}, config=config) as c:
        c.sudo('/bin/bash -l -c whoami', user='dev_user')
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

fab abcd
What's your sudo password?
[sudo] password: Sorry, user myuser is not allowed to execute '/bin/bash -l -c whoami' as …
Run Code Online (Sandbox Code Playgroud)

python sudo fabric

6
推荐指数
2
解决办法
2700
查看次数

标签 统计

fabric ×1

python ×1

sudo ×1