使用root权限运行Python脚本

时间:2015-12-24 07:37:04

标签: python root sudo sudoers visudo

我有一个Python脚本需要在没有root权限的情况下在Ubuntu服务器上挂载磁盘。 我使脚本可执行(使用#!/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

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

我做错了什么?

1 个答案:

答案 0 :(得分:3)

在行尾不应该是斜线。你的sudoers文件应该是这样的,

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

现在,关于你的实际问题!

  

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

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

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