在plumbum上使用python运行sudo命令的问题
我正在使用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"))