Cronジョブコンソール接続とルート権限

Cronジョブコンソール接続とルート権限

私は、以下に示す関連部分を含むユーザー Bob 用のスクリプトを作成中です。問題は、この cronjob をユーザー Bob の下に置くと、zenity は動作しますが、shutdown は動作しないということです。また、これを root の下に置くと、shutdown は動作しますが、zenity はコンソールに表示されません。

#!/bin/bash
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u Bob gnome-session)/environ)";
someValue=`DISPLAY=:0.0 zenity --text="tell me your value" --entry`
...
...
/sbin/shutdown -h "now"

また、root で実行し、zenity のために Bob に su を使用し、root に戻ってシャットダウンすることも試みましたが、うまくいきませんでした。

これを実行する方法はありますか?

他の情報

OSはLinux Mintで、ボブがマシンの唯一のユーザーです

答え1

権限のないユーザーは、コマンド ラインからマシンをシャットダウンすることはできません。 どうしても Bob としてシャットダウンを送信する必要がある場合は、 を使用して sudoers に Bob を追加できますvisudo

sudo visudo

次の行を追加します。

bob ALL = (root) NOPASSWD: /sbin/shutdown -h "now"

ファイルを保存します。その後、subob としてコマンドをテストできます。

sudo /sbin/shutdown -h "now"

関連情報