Su (Unix)

Unixコマンドであるsu（エスユー、ス）は、再ログインすることなく、シェルのユーザを切り替えるために利用される。Unixにおいて、マシンの管理作業を行う際にroot権限を得るために頻繁に使用されるコマンドである。KDEやGNOME等のようなデスクトップ環境において、root権限が必要なコマンドを実行しようとすると、一般的にパスワード用の入力フィールドがポップアップする。

概要 
suは一般的に、コマンドラインのターミナルから実行される。suを実行すると、切り替え先ユーザのパスワードが要求され、認証が成功した場合は、そのアカウントへのアクセス権限が与えられる。

johndoe@klinger:~$ su
Password: 
root@klinger# exit
exit
johndoe@klinger:~$

関連するコマンドとしてsudoがある。sudoを用いれば、別のユーザの権限でコマンドを実行できる。

sudoコマンド実行時、実行者であるユーザが、どのユーザの権限で、どういうコマンドラインを実行できるかといった情報は、一般的に/etc/sudoersで設定されている。
suを実行する際には切り替え先の権限のパスワードが要求されるのに対して、sudoを実行する際には自分のパスワードが要求される。
そのため、sudoを利用して作業をする人に対して切り替え先のユーザのパスワードを伝える必要がなく、ユーザーパスワードと管理者パスワードの両方を管理する必要がなく、パスワードが漏洩する危険性も軽減できる。Linuxディストリビューションによっては、suを利用してroot権限になることを禁止しており、root権限でコマンドを実行する場合は常にsudoを先頭につけることもある。

システム管理者は、不正な利用者によってroot権限を取得されないように、rootのパスワードを慎重に決定しなければならない。
Unixシステムによってはwheelグループが存在し、wheelグループに所属していないユーザはsuコマンドでroot権限を得ることができない。
この仕組みによって、侵入者がroot権限を得る可能性を軽減できる。
しかしながら、GNU suは思想的な理由によりWheelグループをサポートしない。

Windows XPにもrunasという類似コマンドが存在する。

脚注

外部リンク 
 Manpage of SU GNU 版 su、JM Project
 su Command man page（SunOS リファレンスマニュアル）
 su(1) man page（HP-UX リファレンス）

UNIXのソフトウェア
システム管理