Allow users to shutdown (日本語) - ArchWiki

# Allow users to shutdown (日本語)

## ボタンとカバーのイベント

suspend, poweroff, hibernate ボタンの押下とカバーを閉じた時のイベントは電源管理#ACPI イベント のページで説明されているように logind によって管理されています。

## systemd-logind を使う

systemd を使っている場合 (Arch Linux ではデフォルト)、polkit をインストールすれば、セッションが破壊されないかぎり電源関連のコマンドをリモートでないセッションのユーザーが実行することができます。

セッションが有効かどうか確認するには:

    $ loginctl show-session $XDG_SESSION_ID --property=Active

コマンドラインで systemctl を使うか、またはコマンドをメニューに追加することが可能です:

    $ systemctl poweroff
    $ systemctl reboot

`systemctl suspend` や `systemctl hibernate` など他のコマンドも同じように使えます。`man systemctl` の System Commands セクションを見て下さい。

## sudo を使う

sudo をインストールして、ユーザーに sudo 権限を与えます。ユーザーはコマンドラインやメニューから sudo systemctl コマンドを使えるようになります:

    $ sudo systemctl poweroff
    $ sudo systemctl reboot

`systemctl suspend` や `systemctl hibernate` など他のコマンドも同じように使えます。`man systemctl` の System Commands セクションを見て下さい。

### sudo 権限のないユーザー

シャットダウンコマンドを使用する権限だけをユーザーに与えて、他の sudo 権限は与えない場合、root で `visudo` コマンドを使って `/etc/sudoers` の最後に次の行を追加してください。user はユーザー名に、hostname はマシンのホスト名に置き換えてください。

    user hostname =NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot

この設定でユーザーは `sudo systemctl poweroff` でシャットダウンを、`sudo systemctl reboot` で再起動を出来るようになります。システムの電源を切りたい場合は `sudo systemctl halt` が使えます。パスワードを訊かれたくない場合にのみ `NOPASSWD:` タグを使って下さい。

## エイリアスを作成する

以下のエイリアスをユーザーの `~/.bashrc` (もしくはシステム全体に設定する場合 `/etc/bash.bashrc`) に追加すると便利です:

    alias reboot="sudo systemctl reboot"
    alias poweroff="sudo systemctl poweroff"
    alias halt="sudo systemctl halt"

systemd-sysvcompat をインストールすることでもエイリアスと同じことが出来ます。このパッケージは systemctl のそれぞれのコマンドのシンボリックリンクを作成します。

Category:

- Security (日本語)