システム管理コマンド su(1M)
【名前】
su - スーパーユーザーまたは別のユーザーに変更
【形式】
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 -"」は次の作業を
実行します。
o すでに伝播されている環境変数に加えて、指定さ れ た ユー
ザーの環境から環境変数 LC* と LANG を伝播します。
o ユーザーの環境から環境変数 TZ を伝播します。環境変数 TZ
が ユー ザー の 環 境 に 存 在 し な い 場 合、 su は、
/etc/default/login にある TIMEZONE パラメータの TZ 値を
使用します。
o 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 のサービスのエントリ
を使用します。複数の認証モジュールが記述されている場合、複数
のパスワードが必要になることがあります。
【使用例】
例 1: 以前にエクスポートした環境を維持してユーザーbin になる
以前にエクスポートした環境のままユーザーbin になるには、以下
のコマンドを実行します。
example% su bin
例 2: ユーザーbin になり bin のログイン環境に変更する
ユーザーbin になり、bin がログインした場合と同じ環境に切り替
えるには、以下のコマンドを実行します。
example% su - bin
例 3: ユーザーbin の環境とアクセス権でコマンドを実行する
ユーザーbin の一時的な環境とアクセス権を使ってコマンド com-
mand を実行する場合は、以下のように入力します。
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 の動作が決定します。
LC_CTYPE su が文字を処理する方 法 を 決 定 し ま す。
LC_CTYPE に有効な値が設定されていると、その
ロケールで有効な文字を含むテキストやファイル
名 を表示または処理できます。また、拡張 UNIX
コード (EUC) の表示または処理も可能で す (1
〜 3 バイト幅の文字を使用)。このほか、1 カラ
ム幅、2 カラム幅、またはそれ以上のカラム幅の
EUC 文字も処理できます。C ロケールでは、ISO
8859-1 の文字だけが有効です。
LC_MESSAGES 診断メッセージや情報メッセージの表示方法を決
定します。また、メッセージの言語とスタイル、
肯定・否定の応答形式も決定します。C ロケール
では、メッセージはプログラム自身が使用してい
るデフォルトの形 (通常、米語) で表示さ れ ま
す。
【ファイル】
$HOME/.profile sh および ksh ユーザーのログインコマ
ンド
/etc/passwd システムのパスワードファイル
/etc/profile システム全体の sh と ksh のログイ ン
コマンド
/var/adm/sulog ログファイル
/etc/default/su このファイル中に指定できるデフォルト
パラメータは以下のとおりです。
SULOG 定義されている場合、
別のユーザーになるた
めの su の試行はすべ
て、指定されたファイ
ルに記録されます。
CONSOLE 定義されている場合、
root になるための su
の試行はすべて、コン
ソー ル に記録されま
す。
PATH デ フォ ル ト パ ス
(/usr/bin:)
SUPATH root になるために su
を 起 動しているユー
ザーのデフォルトパス
(/usr/sbin:/usr/bin)
SYSLOG すべての su 試行を記
録 す る の に
syslog(3C) の
LOG_AUTH を使うかど
うかを指定し ま す。
LOG_NOTICE メッセー
ジは root への su に
対 し て 生 成され、
LOG_INFO メッセー ジ
はその他のユーザーへ
の su に対して生成さ
れ ま す。 LOG_CRIT
メッセージは、su に
失敗した場合に生成さ
れます。
/etc/default/login このファイルのデフォルトのパラメータ
は、次のとおりです。
TIMEZONE シェルの TZ 環境変数
を設定します。
【属性】
次の属性については attributes(5) のマニュアルページを参照 し
てください。
____________________________________________________________
| 属性タイプ | 属性値 |
|_____________________________|_____________________________|
| 使用条件 | SUNWcsu |
|_____________________________|_____________________________|
【関連項目】
csh(1), env(1), ksh(1), login(1), roles(1), sh(1),
syslogd(1M), exec(2), getdefaultproj(3PROJECT),
setproject(3PROJECT), pam(3PAM), pam_authenticate(3PAM),
pam_acct_mgmt(3PAM), pam_setcred(3PAM), pam.conf(4),
passwd(4), profile(4), sulog(4), syslog(3C), attributes(5),
environ(5)
|
|