使用 root 权限制作 Python 脚本 运行

Making a Python script run with root privileges

我有一个 Python 脚本需要在 Ubuntu 服务器上安装磁盘而不需要 root 权限。 我使脚本可执行(使用 #!/usr/bin/env python)。我也将它重命名为'.sh'(可能不重要),并且chmod它是可执行的。

然后,我在我的 sudoers 文件中输入了以下行:

ALL ALL = (ALL) NOPASSWD: /home/sazulay/.scripts/mount_disks.sh/

如果我删除最后一个“/”,visudo 会声称我有语法错误。

如果我这样保留它并且 运行 来自我的用户的以下行:

sudo /home/sazulay/.scripts/mount_disks.sh

我仍然被提示输入密码,这正是我试图避免的。

我做错了什么?

行尾不应有斜线。您的 sudoers 文件应如下所示,

ALL ALL = (ALL) NOPASSWD: /home/sazulay/.scripts/mount_disks.sh

现在,进入您的实际问题!

If I remove the last '/' ,visudo claims I have a syntax error.

我怀疑您添加的行在文件末尾。现在,传统上,如果文件不以换行符 \n 结尾,unix 命令就会出现问题。大多数 linux 编辑器(据我所知)都添加了这个。您使用的任何编辑器都可能没有。因此,在文件末尾添加额外的一行,这样您的行就是 而不是 最后一行。所以它应该是这样的

ALL ALL = (ALL) NOPASSWD: /home/sazulay/.scripts/mount_disks.sh
<--- empty line --->