自宅サーバー構築メモ The last update of this page 2005/12/11
特定のコマンドしか実行できないユーザーIDを作成
基本的な考え方は、デフォルトのシェルを制限付きにして、一部のコマンドのみを実行可能な環境設定を行う

例は shutdown コマンドのみ実行できるユーザー down を作成

downという専用のユーザーIDを作成 パスワード設定
useradd down
passwd down

次に、デフォルトのシェルを制限付きにする。
bashをrbashという名前で起動すると、制限付きのシェルになるので、rbashというbashのリンクを作成する
ln -s /bin/bash /bin/rbash

rbashをデフォルトのシェルにする前に/etc/shellsにrbashを登録しなければならない
テキストエディタで/etc/shellsを開いて以下の記述を追加する
vi /etc/shells
追加する内容:/bin/rbash

これが終わったら、ユーザーdownでログインして、chshコマンドを実行する
su - down
chsh

これでシェルがrbash(制限付きのbash)になる
次に、再びrootでログインしてdownのホームディレクトリにある.bash_profileのユーザーとグループをrootに変更する
また、root以外が変更できないようにアクセス権を設定する
cd /home/down
chown root.root .bash_profile
chmod 644 .bash_profile

次に、PATHを特定のディレクトリに変更して、そのディレクトリにdownが実行可能なプログラムのリンクを作成する
ここでは、/home/down/binにPATHを設定して、sudoコマンドだけを実行できるようにしてみる
テキストエディタで.bash_profileを開いて、 最下行に以下の記述を追加する
vi .bash_profile
追加する内容:export PATH=$HOME/bin

そして、/home/downにsudoコマンドのリンクを作成する
ln -s /usr/bin/sudo /home/down/bin/sudo

ユーザーdownにshutdownのsudoでの権限を与える
visudoで編集するファイルの最下行に以下の記述を追加
visudo
追加する内容:down ALL=NOPASSWD: /sbin/shutdown

これでdownユーザーはsudoにてshutdownコマンドを実行することができる
利便性を考えて以下のような簡単なシェルを作成しておく
vi /home/down/bin/shutdown
shutdown内容