ユーザーにシャットダウン特権を与える方法は?


9

Ubuntu 11.04を使用しています。実行中のプロセスをチェックし、そのプロセスが終了するとシステムをシャットダウンするスクリプトを実行したいと思います。これを行うには、パスワードを要求せずにスクリプトを実行できるように、ユーザーがシャットダウンアクセスを必要とします。

私はこのページを参照し、sudoersファイルにテキストを追加しました。ただし、実行するたびにパスワードが要求されますsudo shutdown -h now。また、sudoなしでシャットダウンを実行すると、root権限が必要であるというエラーが表示されます。

私のsudoersファイルは次のようになります。

# Cmnd alias specification
Cmnd_Alias      SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
myusername    ALL = NOPASSWD: SHUTDOWN

ユーザーに手動でパスワードを入力せずにシャットダウンコマンドを実行する許可を与えるにはどうすればよいですか?

ありがとう。


1
実際のsudoersファイル全体を投稿していただけませんか?
enzotib 2011年

回答:


6

ユーザー名/パスワードの入力を必要としないHALまたはConsoleKitを使用して、シャットダウンまたは再起動できます。

HAL(古いUbuntuバージョン):

dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

ConsoleKit(新しいUbuntuバージョン、Ubuntu 11.04でテスト済み):

dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

7

私はこの答えのようにそれをしました、私のために完璧に働きます。多分あなたのアプローチはvisudo部分を逃していますか?

コマンドラインを開き、次のように入力します。

sudo visudo 

開いたファイルの最後に次の行を追加します。

yourusername ALL=NOPASSWD: /sbin/halt

次に、エディターを終了して安全にします(CTRL + x)。

これで、たとえば、何かをダウンロードした後、コマンドラインからコンピューターをシャットダウンできます。

wget UrlOfTheFileYouWantToDownload ; sudo halt

1

少し前に、suid(Set User ID)を設定してこれを行いました。これにより、プログラムは、ファイルを実行しているユーザーではなく、ファイルの所有者として実行されます。シャットダウンはrootが所有しているため、sudoなしでシャットダウンできるはずです。

chmod u+s /sbin/shutdown

ただし、誰でもシャットダウンを実行できるため、セキュリティに影響があります。http://en.wikipedia.org/wiki/Setuid


一般に、からの構成ファイル以外の、パッケージからインストールされたファイルまたはファイルのメタデータを変更することはお勧めできません/etc
enzotib 2011年

うーん...本当です!しかし、公式の方法は何ですか?ポルキットで遊んでいますか?あまり良くない...
ターボ

sudo私の意見では正しい方法ですが、残念ながらユーザーはsudoersファイルを表示する機会を与えず、何が問題なのでしょうか。
enzotib 2011年

これは私のために働いた唯一のものです。
マークスチュワート

0

rootとしてスクリプト自体を実行したいようです。何かが完了するのを待ってコンピュータの電源を切るスクリプトを実行する場合は、sudoを使用してスクリプトを実行します。これにより、スクリプトを実行するときにパスワードが要求されますが、スクリプト自体はそれ以上の介入なしでシステムをシャットダウンできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.