マニュアルページセク ション 1M: システム管理コマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

su(1M)

名前

su - スーパーユーザーまたは別のユーザーに変更

形式

su [-] [username [arg...]]

説明

su コマンドを使用すると、ログオフをしないで別のユーザーまたは別の役割になることができます。デフォルトの usernameroot (スーパーユーザー) です。

su を使用するときは、適切なパスワードを入力する必要があります (ユーザーがすでに root の場合は不要)。パスワードが正しければ、指定した username 用に設定されている実ユーザー ID、実効ユーザー ID、グループ ID、補助グループリストを持つ新しいシェルプロセスが生成されます。また、新しいシェルのプロジェクト ID は、指定されたユーザーのデフォルトのプロジェクト ID に設定されます。getprojent(3PROJECT) および setproject(3PROJECT) を参照してください。新しいシェルは、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 によって制御されます。

su を実行して別のユーザーになる操作は、すべてログファイル /var/adm/sulog に記録されます (sulog(4) を参照)。

セキュリティー

su は、サービス名 supam(3PAM) を使って、認証、アカウント管理、および資格の確立を行います。

使用例 1 以前にエクスポートした環境を維持してユーザー bin になる

以前にエクスポートした環境のままユーザー bin になるには、以下のコマンドを実行します。

example% su bin
使用例 2 ユーザー bin になり bin のログイン環境に変更する

ユーザー bin になり、bin がログインした場合と同じ環境に切り替えるには、次のコマンドを実行します。

example% su - bin
使用例 3 ユーザー 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) 参照) のいずれも環境に設定されていなければ、それぞれ対応するロケールのカテゴリにおける su の動作は、環境変数 LANG によって決定されます。LC_ALL が設定されていれば、その内容が LANG 変数やその他の LC_* 変数より優先されます。上記の変数がどれも設定されていなければ、「C」ロケール (米国の形式) によって su の動作が決定します。

LC_CTYPE

su が文字を処理する方法を決定します。LC_CTYPE に有効な値が設定されていると、su は、そのロケールにあった文字を含むテキストやファイル名を表示および処理できます。また、拡張 UNIX コード (EUC) の表示または処理も可能です (1 - 3 バイト幅の文字を使用)。また、su12、またはそれ以上のカラム幅の EUC 文字も処理することができます。「C」ロケール においては、ISO 8859-1 の文字だけが有効です。

LC_MESSAGES

診断メッセージや情報メッセージの表示方法を決定します。また、メッセージの言語とスタイル、肯定・否定の応答形式も決定します。「C」ロケールでは、メッセージはプログラム自身が使用しているデフォルトの形 (通常、米語) で表示されます。

ファイル

$HOME/.profile

sh および ksh ユーザーのログインコマンド

/etc/passwd

システムのパスワードファイル

/etc/profile

システム全体の shksh のログインコマンド

/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

このファイル中に指定できるデフォルトパラメータは以下のとおりです。

SLEEPTIME

存在する場合、ログイン失敗が画面に出力されて、別のログイン試行が許可されるまで待機する秒数を設定します。デフォルトは 4 秒。最小は 0 秒。最大は 5 秒。

sulogin(1) は両方とも SLEEPTIME の値の影響を受けます。

TIMEZONE

シェルの TZ 環境変数を設定します。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os

関連項目

csh(1), env(1), ksh(1), login(1), roles(1), sh(1), syslogd(1M), exec(2), getprojent(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)