我有一个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
我仍然被提示输入密码,这正是我试图避免的。
我做错了什么?
答案 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 --->