suコマンド

suコマンドは、UNIX系OSでスーパーユーザー(root)の権限を得るためのコマンドである。

% su -

を実行するとrootのパスワードを要求されるので、正しく入力するとrootユーザーになる。
また、任意のユーザーの権限を得ることもできる。

% su - hoge

を実行するとhogeユーザーの権限を得ることができる。

rootは強力な権限を持つため、通常、サーバ管理者以外は権限を得られない(`su -`で認証できない)ようにしたい。
これを実現するためにwheelというグループが存在する。

# vi /etc/group


wheel:x:10:root


初期状態は、上記のように設定されている。
ここに、rootの権限を得ることを許可するユーザーをカンマ区切りで追加する。


wheel:x:10:root,hoge


BSD系ではデフォルトの設定でwheelグループに属するユーザーしかrootの権限を得られないようになっているので、これでよい。
Linux系の場合は、次の設定(Fedora Core 4 での例を記す)が必要である。

まず、PAMの設定を行う。
PAM(Pluggable Authentication Module)とは、様々な認証機能をプラグインとして追加する機能を提供する。今回はpam_wheel.soというモジュールを追加する。

# vi /etc/pam.d/su

#%PAM-1.0
auth sufficient /lib/security/$ISA/pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient /lib/security/$ISA/pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required /lib/security/$ISA/pam_wheel.so use_uid
auth required /lib/security/$ISA/pam_stack.so service=system-auth
account required /lib/security/$ISA/pam_stack.so service=system-auth
password required /lib/security/$ISA/pam_stack.so service=system-auth
# pam_selinux.so close must be first session rule
session required /lib/security/$ISA/pam_selinux.so close
session required /lib/security/$ISA/pam_stack.so service=system-auth
# pam_selinux.so open and pam_xauth must be last two session rules
session required /lib/security/$ISA/pam_selinux.so open multiple
session optional /lib/security/$ISA/pam_xauth.so

pam_wheel.so のコメントをはずす。


auth required /lib/security/$ISA/pam_wheel.so use_uid



最後に /etc/login.defs に設定を追加する。

# vi /etc/login.defs

最終行に1行追加する。


SU_WHEEL_ONLY yes


以上で設定完了であるが、この一連の設定をミスすると誰もrootになれない状態に陥る。リモート(telnetやssh)で作業を行う際は十分注意されたし。

hoge% su -

パスワードを求められる。

Password:

適切に入力する。

root#

rootになれる。

someone% su -

パスワードを求められる。

Password:

適切に入力する。

su: パスワードが違います

rootになれない。
2005年09月29日(木) 02:27:15 Modified by nadai14




スマートフォン版で見る