名前 | 形式 | 機能説明 | セキュリティ | 使用例 | 環境 | ファイル | 属性 | 関連項目
su [-] [username [arg]...]
su コマンドを使用すると、ログオフをしないで別のユーザーまたは別の役割になることができます。デフォルトの username は root (スーパーユーザー) です。
su を使用するときは、適切なパスワードを入力する必要があります (ユーザーがすでに root の場合は不要)。パスワードが正しければ、指定した username 用に設定されている実ユーザー ID、実効ユーザー ID、グループ ID、補助グループリストを持つ新しいシェルプロセスが生成されます。新しいシェルは、username のパスワードファイルエントリ (passwd(4) を参照) のシェルフィールドで指定されたシェルです。シェルが指定されていないと、/usr/bin/sh (sh(1) を参照) になります。スーパーユーザー権限が必要な場合に、exec(2) によってスーパーユーザーのシェルを起動できないときは、代わりに /sbin/sh が使用されます。元のユーザー ID の権限に戻る場合は、EOF 文字 (CTRL-D) を入力して新しいシェルを終了します。
コマンド行に引数を指定すると、その引数が新しいシェルに渡されます。sh などのプログラムを実行している場合は、arg (引数) に -c string と指定すると、シェルによって string が実行されます。また、引数に -r を指定すると、ユーザーに制限付きのシェルが与えられ提供されます。
ログイン環境を作成するために、コマンド「“su –”」は次の作業を実行します。
すでに伝播されている環境変数に加えて、指定されたユーザーの環境から環境変数 LC* と LANG を伝播します。
ユーザーの環境から環境変数 TZ を伝播します。環境変数 TZ がユーザーの環境に存在しない場合、su は、/etc/default/login にある TIMEZONE パラメータの TZ 値を使用します。
MAIL を /var/mail/new_user に設定します。
su の最初の引数に – (ダッシュ) を指定すると、指定したユーザーとして実際にログインした場合と同じ環境が渡されます。最初の引数に – (ダッシュ) を指定しない場合、$PATH 以外の環境が渡されます。$PATH は /etc/default/su 中で PATH と SUPATH によって制御されます。また、引数に – (ダッシュ) を指定した場合は、ユーザーのプロジェクト ID が設定されます。settaskid(2) のマニュアルページを参照してください。
su を実行して別のユーザーになる操作は、すべてログファイル /var/adm/sulog に記録されます (sulog(4) を参照)。
su は、pam(3PAM) を使って、認証、アカウント管理、セッション管理を行います。su で使用するモジュールを指定する PAM 構成ポリシーは、/etc/pam.conf に記述されています。次の例は、su コマンド (UNIX 認証、アカウント管理、セッション管理モジュールを実行) エントリが記述されている pam.conf ファイルの抜粋を示します。
su auth requisite pam_authtok_get.so.1 su auth required pam_dhkeys.so.1 su auth required pam_unix_auth.so.1 su account required pam_unix_roles.so.1 su account required pam_unix_projects.so.1 su account required pam_unix_account.so.1 su session required pam_unix_session.so.1
su サービスのエントリがない場合は other のサービスのエントリを使用します。複数の認証モジュールが記述されている場合、複数のパスワードが必要になることがあります。
以前にエクスポートした環境のままユーザー bin になるには、以下のコマンドを実行します。
example% su bin |
ユーザー bin になり、bin がログインした場合と同じ環境に切り替えるには、以下のコマンドを実行します。
example% su - bin |
ユーザー bin の一時的な環境とアクセス権を使ってコマンド command を実行する場合は、以下のように入力します。
example% su - bin -c "command args" |
セキュリティ上の理由から、接頭辞 LD_ が付いている環境変数は削除されました。このため、以前にユーザー bin でエクスポートした接頭辞 LD_ 付きの環境変数は、su bin を実行しても使用できません。
LC_* 変数 (LC_CTYPE、LC_MESSAGES、LC_TIME、LC_COLLATE、LC_NUMERIC、LC_MONETARY) (environ(5) 参照) が設定されていない環境では、環境変数 LANG によって、各ロケールカテゴリの su の動作が決定します。もし、LC_ALL が設定されていれば、その内容が LANG 変数やその他の LC_* 変数より優先されます。上記の変数がどれも設定されていなければ、C ロケール (米国の形式) によって su の動作が決定します。
su が文字を処理する方法を決定します。LC_CTYPE に有効な値が設定されていると、そのロケールで有効な文字を含むテキストやファイル名を表示または処理できます。また、拡張 UNIX コード (EUC) の表示または処理も可能です (1 〜 3 バイト幅の文字を使用)。このほか、1 カラム幅、2 カラム幅、またはそれ以上のカラム幅の EUC 文字も処理できます。C ロケールでは、ISO 8859-1 の文字だけが有効です。
診断メッセージや情報メッセージの表示方法を決定します。また、メッセージの言語とスタイル、肯定・否定の応答形式も決定します。C ロケールでは、メッセージはプログラム自身が使用しているデフォルトの形 (通常、米語) で表示されます。
sh および ksh ユーザーのログインコマンド
システムのパスワードファイル
システム全体の sh と ksh のログインコマンド
ログファイル
このファイル中に指定できるデフォルトパラメータは以下のとおりです。
定義されている場合、別のユーザーになるための su の試行はすべて、指定されたファイルに記録されます。
定義されている場合、root になるための su の試行はすべて、コンソールに記録されます。
デフォルトパス (/usr/bin:)
root になるために su を起動しているユーザーのデフォルトパス (/usr/sbin:/usr/bin)
すべての su 試行を記録するのに syslog(3C) の LOG_AUTH を使うかどうかを指定します。LOG_NOTICE メッセージは root への su に対して生成され、LOG_INFO メッセージは その他のユーザーへの su に対して生成されます。LOG_CRIT メッセージは、su に失敗した場合に生成されます。
このファイルのデフォルトのパラメータは、次のとおりです。
シェルの TZ 環境変数を設定します。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ |
属性値 |
使用条件 |
SUNWcsu |