スポンサーリンク

SU(1) FreeBSD 一般コマンドマニュアル SU(1)

名称

su − 一時的に他のユーザになりかわる

書式

su [] [−flms] [−c class] [login [args]]

解説

su ユーティリティは PAM 経由で適切なユーザ資格を要求し、そのユーザ ID に 切り替えます (デフォルトユーザはスーパユーザです)。その後シェルが実行され ます。

すべてのポリシの設定には PAM が使用されます。

デフォルトでは、 USER, HOME, SHELL 以外の環境変数は引き継がれます。 HOME と SHELL はターゲットとなるログインのデフォルト値になります。 USER は、 ターゲットログインのユーザ ID が 0 以外であれば、ターゲットログインのもの がセットされます。 0 の場合は変更されません。実行されるシェルはターゲット ログインのログインシェルです。これは su の伝統的なふるまいです。オリジナ ルユーザのログインクラス (login.conf(5) 参照) の資源制約とセッション優先 度も通常保たれます。例外はターゲットログインがユーザ ID 0 の場合です。

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

       −f

シェルとして csh(1) が実行される場合、 ‘‘.cshrc’’ ファイルを読み 込みません。

−l
通常にログインした場合と同様になるように環境変数が設定されます。 すなわち、環境変数は HOME, SHELL, PATH, TERM, USER 以外は捨てられ ます。 HOME と SHELL は上記のように変更されます。 USER はターゲッ トログインの値になります。 PATH は ‘‘/bin:/usr/bin’’ になります。 TERM は、あなたの現在の環境変数の値になります。ターゲットログイン のクラスにより、ログインクラスケーパビリティデータベースに基づ き、環境変数が設定もしくは変更されることがあります。実行される シェルはターゲットログインのログインシェルになり、ターゲットログ インのホームディレクトリに移動します。資源制約とセッション優先度 は、ターゲットアカウントのログインクラスのものに変更されます。


(文字無し) −l と同じです。

−m
環境変数は変化しません。実行されるシェルは自分のログインシェル で、ディレクトリの移動も行われません。セキュリティの用心として、 もしターゲットユーザのシェルが非標準シェル (getusershell(3) で定 義される) であり、かつ、呼出側の実ユーザ ID が 0 でなければ、 su は失敗します。

−s
ユーザの資格の設定の一環として、 MAC ラベルをユーザのデフォルトラ ベルへ設定します。起動したプロセスの MAC ラベルが、ユーザのデフォ ルト MAC ラベルへ遷移するには不十分である場合、 MAC ラベルの設定 は失敗するかもしれません。ラベルの設定ができない場合、 su は失敗 します。

−c class
指定されたログインクラスの設定を使用します。スーパユーザのみが使 用を許されます。

−l (または ) と −m は、同時に指定することはできません。最後に指定したも のが優先されます。

オプションの args がコマンドラインに指定されると、それらはターゲットログ インのログインシェルに引き渡されます。ターゲットログイン名より前のコマン ドライン引数はすべて su 自身によって処理され、ターゲットログイン名より後 のコマンドライン引数はすべてログインシェルに渡されることに注意してくださ い。

デフォルトでは (設定がされていなければ) スーパユーザのプロンプトは ‘‘#’’ に設定されます。

関連ファイル

       /etc/pam.d/su

su の PAM 設定ファイル

関連項目

csh(1), sh(1), group(5), login.conf(5), passwd(5), environ(7), pam(8)

環境変数

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

       HOME

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

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

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

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

使用例

       su man -c catman

コマンド catman をユーザ man で実行します。あなたの実 UID が 0 で ない場合は、man のパスワードを尋ねられます。
su man -c ’catman /usr/share/man /usr/local/man /usr/X11R6/man’
上と同様ですが、コマンドが複数の語から構成されています。 −c オプ ションをシェルに渡すためにクォートしています (ほとんどのシェルでは −c への引数が単一語であると期待します)。
su -c staff man -c ’catman /usr/share/man /usr/local/man /usr/X11R6/man’
上と同様ですが、ログインクラス ‘‘staff’’ の資源制限にてターゲット コマンドを実行します。注: この例では、最初の −c オプションは su に 適用され、2 番目のものは起動されるシェルの引数となります。
su -l foo
ユーザ foo のログインをシミュレートします。
su - foo
上と同じです。
su -
rootのログインをシミュレートします。

歴史

su コマンドは Version 1 AT&T UNIX から登場しました。

FreeBSD 10.0 October 3, 2004 FreeBSD 10.0

スポンサーリンク