UNIX/Linuxの部屋 コマンド:su

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド 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 では「パスワードが違います」に変更されているとか…。
>> FreeBSDオンラインマニュアル(man) FreeBSD su(1)
>> Linuxオンラインマニュアル(man) Linux su(1)
>> Solaris10オンラインマニュアル(man) Solaris10 su(1M)

読み方 su (UNIXコマンド) [す] [えす・ゆー] このエントリーをはてなブックマークに追加

UNIX Version 6 (1978年ぐらい)では su コマンドには root の代わりにユーザ名を指定できなかったので、 "Super User" の略だったようだが、現在では "Switch User" あるいは "Substitute User id" の略とされている。