shutdownアカウントによる自動シャットダウン

<<Linjuxシステム設定 トップページに戻る

shutdownアカウントは、ログインと同時に shutdown を実行することができるように設定されたアカウントで、root によるリモート接続や susudo が禁止されて root権限を得ることができないマシンを shutdown するときに使用するアカウントです。



  • 任意の場所にスクリプトを格納するディレクトリを作成する

     (※一般ユーザが閲覧できない場所に作成する)
      # mkdir /usr/local/system

  • shutdown用のスクリプトを作成する

      # vi /usr/local/system/shutdown.sh

       - スクリプトの内容 -
       #!/bin/sh
       /sbin/shutdown -h now


  • ディレクトリとスクリプトのパーミッションを変更する

      # chmod 750 /usr/local/system
      # chmod 750 /usr/local/system/shutdown.sh


  • shutdownスクリプトを所有者とグループのみが実行できるよう変更する

      # chmod u+s /sbin/shutdown

  • root グループに属したshutdownアカウントを作成する

     (※最近のディストリビューションではデフォルトで shutdown が存在することが多い。)
      # useradd -g 0 shutdown

  • 任意のパスワードを設定する

      # passwd shutdown

  • /etc/passwdファイルを編集する

      # vi /etc/passwd

       - 編集する内容 -
       shutdown:x:6:0:shutdown:/home/shutdown:/bin/bash
                       ↓
       shutdown:x:6:0:shutdown:/:/usr/local/system/shutdown.sh

    ※デフォルトで shutdown アカウントが存在する場合も上記のように編集してください。
    ただし、念のためデフォルトの shutdown アカウントの行をコピーしてコメントアウト(行頭に#)しておいてください。

    パーミッションエラーが出る時はさらにユーザIDも「0」に変更する。
       shutdown:x:0:0:shutdown:/:/usr/local/system/shutdown.sh

    以上が設定方法です。

  • shutdownアカウントでサーバにログインする

    ログイン方法は、通常のsshでのログインと同じです

      # ssh shutdown@hostname.com

    パスワードを入力するとシャットダウンが実行されます。