Go to main content

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

印刷ビューの終了

更新: 2018年8月8日
 
 

su(8)

名前

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

形式

su [-fpmslh] [-c <command> ] [username [arg...]]

説明

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

su を使用するときは、適切なパスワードを入力する必要があります (ユーザーがすでに root の場合は不要)。パスワードが正しければ、指定した username 用に設定されている実ユーザー ID、実効ユーザー ID、グループ ID、補助グループリストを持つ新しいシェルプロセスが生成されます。また、新しいシェルのプロジェクト ID は、指定されたユーザーのデフォルトのプロジェクト ID に設定されます。getprojent(3PROJECT) および setproject(3PROJECT) を参照してください。新しいシェルは、username のパスワードファイルエントリのシェルフィールドで指定されたシェルです (passwd(5) を参照)。シェルが指定されていないと、/usr/bin/sh ( sh(1) を参照) になります。スーパーユーザー特権が必要な場合に、exec(2) によってスーパーユーザーのシェルを起動できないときは、代わりに /sbin/sh が使用されます。元のユーザー ID の特権に戻る場合は、EOF 文字 (CTRL-D) を入力して新しいシェルを終了します。

コマンド行に引数を指定すると、その引数が新しいシェルに渡されます。sh などのプログラムを実行している場合は、arg (引数) に –c string と指定すると、シェルによって string が実行されます。また、引数に –r を指定すると、ユーザーに制限付きのシェルが与えられ提供されます。

ログイン環境を作成するために、コマンド「“su –”」は次の作業を実行します。

  • すでに伝播されている環境変数に加えて、指定されたユーザーの環境から環境変数 LC* と LANG を伝播します。

  • MAIL を /var/mail/new_user に設定します。

su の最初の引数に – (ダッシュ) を指定すると、指定したユーザーとして実際にログインした場合と同じ環境が渡されます。そうしない場合、$PATH 以外の環境が渡されます。$PATH は /etc/default/su 中で PATH と SUPATH によって制御されます。

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

オプション

サポートしているオプションは、次のとおりです。

–f, –-fast

初期化スクリプトの読み取りを省略するようにシェルに要求します。すべてのシェルがこれをサポートしているわけではありません。

-, –l, –-login

ログイン環境をシミュレートします。

–m, –p, –-preserve-environment

環境を保持します。–l も渡されている場合、これは無視されます。具体的には、$USER、$HOME、$LOGNAME 環境変数は設定されません。

–c, –-command=<command>

シェルの –c オプションを使用して、呼び出されたシェルに <command> を渡します。

–s, –-shell=<shell>

要求されたプログラムをユーザーのシェルとして使用します。ユーザーのシェルが getusershell 関数で返されない場合、現在のユーザーが root ユーザーでないかぎり、ユーザーはこのオプションを使用できません。

環境が保持される場合で、オプション値が指定されていないときは、$SHELL で指定されているシェルが存在すればそれが起動されます。それ以外の場合は、passwd 内のユーザーエントリが使用されます。passwd エントリにシェルが指定されていない場合は、フォールバックとして /bin/sh が使用されます。

–h–-help

コマンドの使用法を表示します。

セキュリティー

su は、サービス名 su pam(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"
使用例 4 代替のシェルを使用してコマンドを実行する

ユーザー bob として、アカウントのデフォルトとは異なるシェルを使用してコマンドを実行し、環境を保持するには、次のように入力します。

example% su -s /bin/zsh -p bob "command args"

環境変数

セキュリティー上の理由から、接頭辞 LD_ が付いている環境変数は削除されました。このため、以前にユーザー bin でエクスポートした接頭辞 LD_ 付きの環境変数は、su bin を実行しても使用できません。

LC_* 変数 ( LC_CTYPE、LC_MESSAGES、LC_TIME、LC_COLLATE、LC_NUMERIC、および LC_MONETARY) (environ(7) 参照) のいずれも環境に設定されていなければ、それぞれ対応するロケールのカテゴリにおける 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

このファイルは廃止されています。ただし、svc:/system/security/account-policy:default サービスを使用すれば、対応する SMF プロパティーを設定できます。

次の表は、/etc/default/su に含まれているプロパティーと SMF プロパティーとのマッピングの一覧を示しています。

/etc/default/login 内のプロパティー
対応する SMF プロパティー
SULOG
su/log/logfile
CONSOLE
su/log/device
PATH
su/environment/path
SUPATH
su/environment/root_path
SYSLOG
su/log/syslog
SLEEPTIME
login_policy/sleeptime

SMF プロパティーの管理については、 account-policy (8S) のマニュアルページを参照してください。

/etc/default/su ファイルに含まれているプロパティーの説明は、次のとおりです。

SULOG

定義されている場合、別のユーザーになるための su の試行はすべて、指定されたファイルに記録されます。

CONSOLE

定義されている場合、root になるための su の試行はすべて、コンソールに記録されます。

PATH

デフォルトパス(/usr/bin:)

SUPATH

root になるために su を起動しているユーザーのデフォルトパス(/usr/sbin:/usr/bin)

SYSLOG

すべての su 試行を記録するのに syslog(3C)LOG_AUTH を使うかどうかを指定します。root になるための su 試行では LOG_NOTICE メッセージが生成され、その他のユーザーになるための su 試行では LOG_INFO メッセージが生成されます。su 試行に失敗した場合は、LOG_CRIT メッセージが生成されます。

/etc/default/login

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

SLEEPTIME

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

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

属性

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

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

関連項目

csh(1), env(1), ksh(1), login(1), roles(1), sh(1), exec(2), syslog(3C), pam(3PAM), pam_acct_mgmt(3PAM), pam_authenticate(3PAM), pam_setcred(3PAM), getprojent(3PROJECT), setproject(3PROJECT), pam.conf(5), passwd(5), profile(5), sulog(5), attributes(7), environ(7), syslogd(8), account-policy (8S)