如何避免在此脚本中提示输入密码?

如何避免在此脚本中提示输入密码?

我正在使用亚马逊Linux。如果我以“otheruser”用户身份登录,并使用以下文本创建脚本 test.sh

sleep 5 ; sudo reboot now

我可以像这样登录并运行脚本......

[davea@mydevbox ~]$ sudo su - otheruser
[sudo] password for davea: 
Last login: Wed Apr 20 21:18:48 UTC 2016 on pts/0
[otheruser@mydevbox ~]$ sh test.sh 
[otheruser@mydevbox ~]$ 
Broadcast message from [email protected]
    (/dev/pts/0) at 21:19 ...

The system is going down for reboot NOW!

但是,如果我将脚本的内容更改为

sudo service jboss restart

然后我运行脚本,系统提示我输入密码......

[davea@mydevbox ~]$ sudo su - otheruser
[sudo] password for davea: 
Last login: Wed Apr 20 21:09:03 UTC 2016 on pts/0
[otheruser@mydevbox ~]$ sh test.sh 
[sudo] password for otheruser: 

我希望第二个序列与第一个序列类似,因为第二次不会提示我输入密码。我怎样才能做到这一点?

答案1

另一种方法是配置 PolicyKit 以允许特定组的成员重新启动;也就是说,直接授权,从而避免了满足身份验证以获得超级用户授权的整个问题。

创建文件 /etc/polkit-1/localauthority/50-local.d/50-local.pkla 并添加如下子句:

[Allow reboot by booters group]
Identity=unix-group:booters
Action=Action=org.freedesktop.consolekit.system.restart-multiple-users
ResultAny=yes

然后从具有该组成员身份的用户运行该作业。

相关内容