コマンド
su
root (スーパーユーザ) になる。他人の名前でログインする
引数を指定しないと、root としてログインする
% whoami
user1 (現在 user1 でログインしている)
% su user2
Password: (user2 のパスワードを入力)
% whoami
user2 (user2 でログイン)
% su (引数を指定しないと、root としてログインする)
Password: (root のパスワードを入力)
# whoami (root になれた)
root
root が su コマンドを実行したときは、パスワードを要求されない。
# su user1 (パスワードは要求されない)
% whoami
user1
つまり root は誰の権限にでもなれるということである。
また、root のみが 他ユーザの権限でプログラムを実行することができる。
# su username -c command (username の権限で command を実行)
-f ユーザの .cshrc を読み込む
-l 本当のログインのようにする
HOME、SHELL、PATH、TERM、USER 以外の環境変数の設定は捨てられる
-m 環境変数をそのままに残しておく。
HOME・SELL・USER など、環境変数を元のままにしておく。また、ログインシェルは元のユーザのシェルを使用する。
少くとも FreeBSD では、wheel グループに属するユーザでないと、su コマンドで root になることはできない。
IRIX 6.2 の su でパスワードを間違えると
% su
パスワード:
残念です
と言われるらしい。IRIX 6.5 では「パスワードが違います」に変更されているとか…。
読み方
su
(UNIXコマンド) [す] [えす・ゆー]
UNIX Version 6 (1978年ぐらい)では su コマンドには root の代わりにユーザ名を指定できなかったので、 "Super User" の略だったようだが、現在では "Switch User" あるいは "Substitute User id" の略とされている。