web-dev-qa-db-ja.com

通常のユーザーがコンピューターをシャットダウン、停止、または再起動できるようにする適切な方法は何ですか?

私の汚い解決策はchmod +s /sbin/shutdown。それは機能しますが、これはおそらく良い習慣ではなく、安全ではありません。さらに、一部のシステムが更新された後、suidビットがリセットされます。それを行う正しい方法は何でしょうか?

4
ccpizza

すべてのユーザー?またはそれらの選択されたサブセット?コンピューターをローカルで使用しますか、それともリモートで使用しますか(sshなど)。

リモートで作業する少数のユーザーの場合Sudoは正常に機能します。詳細については、 このリンク を参照してください。

ローカルおよびGUIを介してログインしている場合は、より適切なオプションがあります。例えば。 initを介して3本指の敬礼をキャプチャし、それが1分間の遅延シャットダウンをトリガーするようにします。設定してからかなり経ちますので、詳細は飛ばします。 (Slackware 3が最新のときに使用しました)

3
Hennes

shutdown-aスイッチを受け入れる場合(shutdown --helpで確認)、次の操作を実行できます。

  • システムをシャットダウンできるはずのユーザーを/etc/shutdown.allowに追加します。

    例:

    userA
    userB
    
  • -aスイッチを使用してシステムをシャットダウンします。

    例:

    shutdown -a -h now
    

出典: NIXのマニュアルページ:shutdown(8)

2
Dennis

SL6.4を使用しています。ユーザーモードパッケージによって提供される電源オフ、停止、再起動のユーザーバージョンがあります。通常のユーザーとしてシャットダウン、再起動できます(コマンドラインからも)

    $ which {poweroff,reboot,halt}
    /usr/bin/poweroff
    /usr/bin/reboot
    /usr/bin/halt

    rpm -qf $(which poweroff reboot halt)
    usermode-1.102-3.el6.x86_64
    usermode-1.102-3.el6.x86_64
    usermode-1.102-3.el6.x86_64

ルートとして

    # which {poweroff,reboot,halt}
    /sbin/poweroff
    /sbin/reboot
    /sbin/halt

    # rpm -qf $(which poweroff reboot halt)
    upstart-0.6.5-12.el6.x86_64
    upstart-0.6.5-12.el6.x86_64
    upstart-0.6.5-12.el6.x86_64
1
trekkerboy