Linux Tips

特定のコマンドしか実行できないユーザーIDを作成するには

北浦訓行
2002/10/31

 bashの機能を制限するにはで紹介した方法は、Linuxのことをあまり知らないユーザーには有効だが、実行できるコマンドが多いし、exitコマンドで制限モードを終了することもできる。そこで、特定のコマンドしか実行できない専用のユーザーIDを作成する方法を説明する。

 基本的な考え方は、デフォルトのシェルを制限付きにして、一部のコマンドのみを実行可能な環境設定を行うのだ。まず、ユーザーIDを作成する。

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

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

# ln -s /bin/bash /bin/rbash

 次に、rbashをデフォルトのシェルにするのだが、その前に/etc/shellsにrbashを登録しなければならない。テキストエディタで/etc/shellsを開いて、/bin/rbashを追加する。

(省略)
/bin/csh
/bin/ksh
/bin/zsh
/bin/rbash ←この行を追加

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

$ chsh
foo のシェルを変更します。
Password: ←パスワードを入力
新しいシェル [/bin/bash]: /bin/rbash ←「/bin/rbash」を入力
シェルを変更しました。

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

# cd /home/foo
# chown root .bash_profile ←.bash_profileの所有者をrootに変更
# chgrp root .bash_profile ←.bash_profileのグループをrootに変更
# chmod 755 .bash_profile ←.bash_profileのアクセス権を変更
# ls -al .bash_profile
-rwxr-xr-x    1 root     root          238 Oct 15 01:31 .bash_profile

 最後に、PATHを特定のディレクトリに変更して、そのディレクトリにfooが実行可能なプログラムのリンクを作成する。ここでは、fooのホームディレクトリにPATHを設定して、dfコマンドだけを実行できるようにしてみる。

 テキストエディタで.bash_profileを開いて、最下行に以下の記述を追加する。

export PATH=/home/foo

 そして、/home/fooにdfコマンドのリンクを作成する。

# ln -s /bin/df /home/foo/df

 以上で設定は終了だ。この場合、fooでログインすると、bashの組み込みコマンド(rbashで実行できないものを除く)とdf以外のコマンドは実行できなくなる。ほかのコマンドを実行可能にするには、上記の例のように特定のディレクトリにリンクを作成すればいい。

login: foo
Password:
$ ls
bash: ls: command not found ←エラーになる
$ df ←dfコマンドを実行
ファイルシステム    1k-ブロック   使用中      空き 使用% マウント場所
/dev/hda2              7052496   4025168   2669080  61% /

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間