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になれない。
% 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