SU(1)

名称
su - 一時的に他のユーザになりかわる

書式
su [-Kflm] [login [shell arguments]]

解説
su は、 login で指定したユーザになります。指定がないときには root に なります。このとき、ユーザにパスワードが設定されている場合、パスワードの チェックを 行います。デフォルトでは USER, HOME, SHELL 以外の環境変数は引き継がれます。 HOME と SHELL はターゲットとなるログインのデフォルト値になります。 USER はターゲットログインのユーザ ID が 0 以外であれば、 ターゲットログインのものがセットされます。0 の場合は変更されません。 起動されるシェルはターゲットログインのものとなります。 これは su の伝統的な動作です。

オプションとしては、以下のものがあります。

-K  ユーザの認証に Kerberos を使いません。

-f  シェルとして csh(1) が起動される場合に “.cshrc” を読み込みません。

-l  通常にログインした場合と同様になるように環境変数が設定されます。ただし、 環境変数 HOME, SHELL, PATH, TERM, USER は除きます。 HOME と SHELL は前述のように変更されます。 USER はターゲットログインの値になります。 PATH は “/bin:/usr/bin” になります。 TERM は、あなたの現在の環境変数の値になります。 実行されるシェルはターゲットログインのものになり、 ターゲットログインのホームディレクトリに移動します。

-m  環境変数を変更しません。 起動されるシェルは自分のログインシェルで、ディレクトリの移動も行われません。 セキュリティの警戒のため、ターゲットとなるユーザのシェルが標準のシェルでなく (getusershell(3) で定義されるもの) 呼出側の実ユーザ ID が 0 でない場合は su は失敗します。

-l と -m は、同時に指定することはできません。最後に指定したものがその前の 全ての指定を無効にします。

グループ ID が 0 (通常は “wheel” ) に属するユーザしか “root” になることはできません。

デフォルトでは (スタートアップファイルでプロンプトがリセット されない限り) スーパーユーザのプロンプトは その荘厳な力を思い出させるために “#” にセットされます。

関連項目
csh(1), login(1), sh(1), skey(1), kinit(1), kerberos(1), passwd(5), group(5), environ(7)

環境変数
su で利用される環境変数は以下の通りです:

HOME
    上記で示した書き換えがない限り、実ユーザ ID のデフォルトの ホームディレクトリです。

PATH
    上記で示した書き換えがない限り、実ユーザ ID のデフォルトの サーチパスです。

TERM
    代理人が所有している端末のターミナルタイプです。

USER
    ユーザ ID が 0 (root) 以外の場合は、ユーザ ID は su 後の effective ID (ターゲットとなるユーザ ID) です。

歴史
su コマンドは AT&T UNIX から登場しました。 ここで述べられているバージョンのものは、 MIT の Athena Kerberos の機能が追加されています。