如何使用 sudoers 来执行 python 脚本

如何使用 sudoers 来执行 python 脚本

我在 bash 中有一个脚本(名为 script),我想允许用户(名为“userScript”)以 root 身份运行它而无需提供任何密码。

因此,我编辑了文件 /etc/sudoers 并在末尾添加了两行:

Cmnd_Alias SCRIPT=/home/userScript/Desktop/script

userScript ALL:NOPASSWD: SCRIPT

(桌面中的脚本是符号链接,以防止任何修改)

它运行得很好。几天后,我的脚本太大了,所以我用python重写了它,包含多个文件、类...

因此,除了符号链接的目标之外,我没有做任何改变,但是现在当我尝试运行脚本时,终端会要求输入密码,并给我一个错误(如果这不是好消息,我很抱歉,因为我的 Ubuntu 不是英文的)

抱歉,用户 userScript 无权在 name_of_my_computer 上以 root 身份执行“/usr/bin/python 脚本”

我以用户“userScript”的身份运行如下脚本:

sudo python script

答案1

您的问题是,您尝试运行的命令sudopython;脚本是 的第一个参数python。相反,您的脚本应该具有可执行权限,并且您应该将其作为 运行sudo script_name

其次,当您执行 时python script_name,它不一定会查找您的脚本,无论它存储在何处。您要么必须提供完整路径,要么再次让脚本本身位于PATH变量中列出的目录之一中。

答案2

你的 sudoers 文件看起来不错。我确实添加了一行 shebang 代码

#!/usr/bin/python3

并运行脚本

sudo script

相关内容