2014-12-05 40 views
-1

我需要没有被要求输入密码运行命令为“some_user”,所以I型:的Linux:运行特定的命令,作为根

$ sudo visudo 

添加此行确实工作:

some_user ALL=NOPASSWD: ALL 

但加入这一行(只有特定的命令“白名单”)不工作:

some_user ALL=NOPASSWD: /etc/init.d/"some_service start" 

$ sudo /etc/init.d/"some_service start" 

...仍然会要求输入密码。 我在做什么错?

编辑:更正(但仍需要密码)

some_user ALL=NOPASSWD: /etc/init.d/"some_service start" 

$ sudo /etc/init.d/some_service start 
+1

为什么引号?我怀疑'/ etc/init.d'中没有名为'some_service \ start'的文件。通过试图使参数成为命令名称的一部分,你会混淆'sudo' ... – twalberg 2014-12-05 19:14:34

+0

@twalberg - 是的,正确的,有一对不属于此处的引号:我已更正它,但问题仍然存在。 – TomDogg 2014-12-05 22:32:19

+0

在我看来,引号仍然在你的'sudoers'文件中......但是也许这只是一个错误的帖子... – twalberg 2014-12-06 05:41:46

回答

0

的问题是与报价,双方在命令行,并在sudoers文件。引号使sudo和shell认为应该有一个名为“some_service start”的文件/etc/init.d,而不是将start作为参数/etc/init.d/some_service