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

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

私はBobユーザーのためのスクリプトを書いています。関連部分は以下の通りです。私が持っている問題は、このcronjobをBobユーザーの下に置くとzenityは機能しますが、シャットダウンは機能しないことです。ルートを解放すると正常に動作しますが、コンソールに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 exitとして再び終了しようとしましたが、うまくいきませんでした。

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

その他の情報

オペレーティングシステムはLinux Mintで、Bobはそのシステムの唯一のユーザーです。

ベストアンサー1

権限のないユーザーは、コマンドラインからコンピュータをシャットダウンできません。 Bobに終了メッセージを送信する必要がある場合は、Bobをsudoersに追加できますvisudo

sudo visudo

isに次の行を追加します。

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

アーカイブを保存します。その後、subob の役割を実行し、コマンドをテストできます。

sudo /sbin/shutdown -h "now"

おすすめ記事