私はAmazon 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:
2番目はパスワードの入力を求められませんので、2番目のシーケンスが最初のシーケンスと似ていることを望みます。どうすればいいですか?
ベストアンサー1
もう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
次に、そのグループのメンバーシップを持つユーザーからジョブを実行します。