名前 | 形式 | 機能説明 | セキュリティ | 使用例 | 環境 | ファイル | 属性 | 関連項目
su コマンドは、ログオフをしないで別のユーザーになるためのコマンドです。デフォルトの username は root (スーパーユーザー) です。
su を使用するには、適切なパスワードを入力する必要があります (ユーザーがすでに root の場合は不要)。パスワードが正しければ、su は、指定した username 用に設定されている実ユーザー ID およびグループ ID、実効ユーザー ID およびグループ ID、および補助グループリストを持つ 新たなシェルプロセスを生成します。新たなシェルは、指定した username のパスワードファイルエントリ (passwd(4) を参照) のシェルフィールドで指定されたシェルになります。シェルが指定されていない場合は、/usr/bin/sh (sh(1) を参照 ) になります。元のユーザー ID 特権に戻る場合は、EOF 文字 (CTRL-D) を入力して 新たなシェルを終了させます。
コマンド行に引数を指定すると、その引数は、新たなシェルに渡されます。sh などのプログラムを実行している場合には、arg (引数) に -c string と指定すると、シェルを使って string を実行します。また -r を引数に指定すると、制限付きのシェルがユーザーに与えられます。
次の説明は、 指定したユーザーのシェルフィールドに /usr/bin/sh が指定されているか、または何も指定されていない場合にだけ有効です。su の最初の引数に - (ダッシュ) を指定すると、指定したユーザーとして実際にログインする場合と同じ環境が渡されます。最初の引数に - (ダッシュ) を指定しない場合、$PATH 以外の環境が渡されます。$PATH は /etc/default/su 中で PATH と SUPATH によって制御されます。
su を実行して別のユーザーになるという試行は、すべてログファイル /var/adm/sulog に記録されます (sulog(4) を参照) 。
su は pam(3) を使って、 認証、アカウント管理、セッション管理を行います。PAM 構成ポリシーは su で使用するモジュールを指定しており、/etc/pam.conf に記述されています。以下に UNIX 認証、アカウント管理、セッション管理モジュールを使用する su コマンドのエントリの入った pam.conf ファイルの抜粋を示します。
su auth required /usr/lib/security/pam_unix.so.1 su account required /usr/lib/security/pam_unix.so.1 su session required /usr/lib/security/pam_unix.so.1
su サービスのエントリがない場合には other のサービスのエントリを 使用します。複数の認証モジュールが記述されている場合、複数のパスワードが必要となる可能性があります。
以前にエクスポートした環境を保存しながらユーザー bin になるには、以下のコマンドを実行します。
example% su bin |
bin がログインした場合と同じ環境に変更し、ユーザー bin になるためには、以下のコマンドを実行します。
example% su - bin |
ユーザー bin の一時的な環境およびアクセス権を用いて command を実行する場合は、以下のように入力します。
example% su - bin -c "command args" |
LC_* 変数(LC_CTYPE、LC_MESSAGES、LC_TIME、LC_COLLATE、LC_NUMERIC、LC_MONETARY) (environ(5) 参照)のいずれも環境に設定されていなければ、それぞれ対応するロケールのカテゴリにおける su の動作は、環境変数 LANG によって決定されます。もし、 LC_ALL が設定されていれば、その内容が LANG 変数やその他の LC_* 変数より優先されます。上記の変数が環境にまったく設定されていなければ、C ロケール (米国の形式) が su の動作を決定します。
su が文字を処理する方法を決定します。LC_CTYPE に有効な値が設定されていると、su は、その ロケールに有効な文字を含むテキストやファイル名を表示および処理できます。 su は拡張 UNIX コード (EUC) も表示および処理できます。この場合、文字は 1 バイト幅、 2 バイト幅、3 バイト幅のいずれも使用できます。また、 su は 1、2、またはそれ以上のカラム幅の EUC 文字も処理することができます。C ロケールにおいては、ISO 8859-1 の文字だけが有効です。
診断メッセージや情報メッセージの表示方法を決定します。また、メッセージの言語とスタイル、そして肯定および否定の場合の応答形式も決定します。C ロケールにおいては、メッセージはプログラム自身が使用しているデフォルトの形 (通常、米語) で表示されます。
sh と ksh 用ユーザーのログインコマンド
システムのパスワードファイル
システム全体の sh と ksh ログインコマンド
ログファイル
このファイル中に指定できるデフォルトパラメタは以下のとおりです。
SULOG
定義されている場合、別のユーザーになるための su の試行はすべて、指定されたファイルに記録されます。
CONSOLE
定義されている場合、root になるための su の試行はすべて、コンソールに記録されます。
PATH
デフォルトパス (/usr/bin:)
SUPATH
root になるために su を起動しているユーザーのデフォルトパス (/usr/sbin:/usr/bin)
SYSLOG
すべての su 試行を記録するのに syslog(3) の LOG_AUTH を使うべきかどうかを指定します。LOG_NOTICE メッセージは root への su に対して生成され、LOG_INFO メッセージは その他のユーザーへの su に対して生成されます。 LOG_CRIT メッセージは、su に失敗した場合に生成されます。
SLEEPTIME
存在していれば、ログインに失敗したことが画面上に表示され、次のログインが入力できるまでの待ち時間を秒単位で設定します。デフォルトは 4 秒、最小時間は 0 秒で、最大時間は 5 秒です。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
使用条件 | SUNWcsu |
csh(1), env(1), ksh(1), login(1), sh(1), syslogd(1M), pam(3), syslog(3), pam.conf(4), passwd(4), profile(4), sulog(4), attributes(5), environ(5), pam_unix(5)