在plumbum上使用python运行sudo命令的问题

1 投票
1 回答
999 浏览
提问于 2025-04-18 04:09

我正在使用Python 2.7和最新的plumbum包,这个包是从mac ports安装的。

总体来说,plumbum运行得很好。不过,我在用它执行需要管理员权限的命令时遇到了一些麻烦。我已经设置好了我的/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

这个用户确实存在,所以我不太明白这是怎么回事。

有没有人能给点建议?

1 个回答

4

这里没有叫做“-u userfoo”的用户。可能只是“userfoo”这个名字。注意:前面没有-u这个前缀。你可以试试:

from plumbum.cmd import sudo

as_userfoo = sudo["-u", sudo_user]
print(as_userfoo("whoami"))

撰写回答