【问题标题】:Issue with running sudo command with python on plumbum在铅锤上使用 python 运行 sudo 命令的问题
【发布时间】:2014-04-24 23:37:28
【问题描述】:

我正在使用 Python 2.7 和来自 mac 端口的最新铅包。

一般来说,铅的效果很好。虽然我有一段时间让 sudo'd 命令工作。我已经为我想要运行的命令设置了我的 /etc/sudoers,而无需提示,所以这很好。我可以毫无问题地手动运行命令。

但是,当我使用这个从 python 中尝试相同的操作时:

sudo["/usr/local/some-magic-command here"]
sudo("-u " + sudoUser) # sudo user is userfoo

我收到以下错误:

plumbum.commands.processes.ProcessExecutionError:命令行:['/usr/bin/sudo', '-u userfoo']

退出代码:1

标准错误:| sudo:未知用户:userfoo

用户确实存在,所以不能完全确定这里的交易是什么。

评论?

【问题讨论】:

    标签: python plumbum


    【解决方案1】:

    没有“-u userfoo”用户。可能只有“userfoo”。注意:没有-u 前缀。试试:

    from plumbum.cmd import sudo
    
    as_userfoo = sudo["-u", sudo_user]
    print(as_userfoo("whoami"))
    

    【讨论】:

    • 我也有同样的问题。
    • from plumbum.cmd import sudo as_userfoo = sudo["-u", Stefan] print(as_userfoo("whoami"))
    • ------------------------------------------ --------------------------------- NameError Traceback(最近一次调用最后)() 1 from plumbum.cmd import sudo 2 ----> 3 as_userfoo = sudo["-u", Stefan] 4 print(as_userfoo("whoami")) NameError: name 'Stefan' is not defined
    • 我知道我是用户,因为较少的 /etc/pwd 列出了我
    • stefan:x:1000:1000:Stefan,,,:/home/stefan:/bin/bash
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 2014-04-30
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    相关资源
    最近更新 更多