Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。

2009年2月12日木曜日

suコマンドの制限 このエントリーを含むはてなブックマーク

本記事では、CentOS5.2でsuコマンドを実行できるユーザを制限する方法をまとめる。他のユーザのパスワードを知っていたとしても(不正に知りえた情報かもしれないので)、誰でもsuを実行できることは危険である。したがって、suを実行できるユーザの制限をする。

設定

/etc/login.defsに次の1行を追加する(<---この設定は、最近は不要らしい。pam_wheel.so を使う場合は、SU_WHEEL_ONLY の設定は不要より)。

SU_WHEEL_ONLY yes
これは、wheelグループに所属するユーザだけsu権限が得られることを意味している。

さらに、/etc/pam.d/suで次の箇所

# Uncomment the following line to require a user to be in the "wheel" group.
#auth            required        pam_wheel.so use_uid
をコメントアウトして、
# Uncomment the following line to require a user to be in the "wheel" group.
auth            required        pam_wheel.so use_uid
のように変更する。 これで、ユーザがwheelグループに所属している場合だけsuの実行権限が与えられる。 ちなみに、よく似た行があるので別の箇所をコメントアウトしないように注意する。

次に、あるユーザhogeをwheelグループに所属させたいときは、

# usermod -G wheel hoge
を実行すれば良い。

sudoの利用

ここでは、ユーザにsudoの実行権限を与える方法を説明する。

sudoを使うと、別のユーザとしてコマンドを実行することができる。 suではrootパスワードを入力してroot権限を取得する必要があったが、 rootパスワードを入力するリスクを回避するためなどの理由で、sudoが使われることがある。

sudoはsuとは異なり、rootパスワードは必要とされない。現在のアカウントのパスワードを 入力して、本人確認が取れればroot権限でコマンドを実行できる。 もちろん、sudoの実行権限の与えられるユーザは十分信頼できることが前提である。

ユーザhogeにsudoの実行権限を与える方法は、まずhogeをwheelグループに所属させて、次にwheelグループに所属するユーザにsudoの実行権限を与えることで実現する。sudoの権限を設定するファイルは/etc/sudoersであるが、これは直に編集するのでなくvisudoという専用のツールで編集する。

# visudo 
で編集モードに入る。次の行
#%wheel ALL=(ALL) ALL
を探して、コメントを外せば良い。

sudoを使うことで、rootパスワードをユーザに知らせることなくroot権限を与えることができるようになるというメリットはある。また、sudoで実行したコマンドの履歴は保存される。しかし、rootパスワードなしで一般ユーザがroot権限を取得できるということはセキュリティ上あまり好ましくないので、これはデメリットでもある。ゆえに、sudoを利用する場合は、それが本当に必要なのかどうかを十分検討する必要がある。

参考サイト

0 コメント:

キーワード

キーワード別に記事を分類してあります。クリックすると各キーワードに該当する記事たちが表示されます。

筆者について

自分の写真
趣味はコンピュータ、音楽、写真などです。