SU
Section: User Commands (1)
索引
jman
BSD mandoc
索引
名称
su
- 一時的に他のユーザになりかわる
索引
書式
[-
]
[-flms
]
[-c class
]
[login [args
]
]
索引
解説
ユーティリティは PAM 経由で適切なユーザ資格を要求し、
そのユーザ ID に切り替えます (デフォルトユーザはスーパユーザです)。
その後シェルが実行されます。
すべてのポリシの設定には PAM が使用されます。
デフォルトでは、
USER
HOME
SHELL
以外の環境変数は引き継がれます。
HOME
と
SHELL
はターゲットとなるログインのデフォルト値になります。
USER
は、ターゲットログインのユーザ ID が 0 以外であれば、
ターゲットログインのものがセットされます。
0 の場合は変更されません。
実行されるシェルはターゲットログインのログインシェルです。
これは
の伝統的なふるまいです。
オリジナルユーザのログインクラス
( login.conf5
参照) の資源制約とセッション優先度も通常保たれます。
例外はターゲットログインがユーザ 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 でなければ、
は失敗します。
- -s
-
ユーザの資格の設定の一環として、
MAC ラベルをユーザのデフォルトラベルへ設定します。
起動したプロセスの MAC ラベルが、
ユーザのデフォルト MAC ラベルへ遷移するには不十分である場合、
MAC ラベルの設定は失敗するかもしれません。
ラベルの設定ができない場合、
は失敗します。
- -c class
-
指定されたログインクラスの設定を使用します。
スーパユーザのみが使用を許されます。
-l
(または
-
) と
-m
は、同時に指定することはできません。最後に指定したものが優先されます。
オプションの
args
がコマンドラインに指定されると、
それらはターゲットログインのログインシェルに引き渡されます。
ターゲットログイン名より前のコマンドライン引数はすべて
自身によって処理され、
ターゲットログイン名より後のコマンドライン引数はすべて
ログインシェルに渡されることに注意してください。
デフォルトでは (設定がされていなければ) スーパユーザのプロンプトは
``#
''
に設定されます。
索引
関連ファイル
- /etc/pam.d/su
-
の PAM 設定ファイル
索引
関連項目
csh(1),
sh(1),
group(5),
login.conf5,
passwd(5),
environ(7),
pam(8)
索引
環境変数
で利用される環境変数は以下の通りです:
- HOME
-
上記で示した書き換えがない限り、
実ユーザ ID のデフォルトのホームディレクトリです。
- PATH
-
上記で示した書き換えがない限り、実ユーザ ID のデフォルトのサーチパスで
す。
- TERM
-
なり代わる人が所有している端末のターミナルタイプです。
- USER
-
ユーザ ID が 0 (root) 以外の場合は、ユーザ ID は常に
後の 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
オプションは
に適用され、2 番目のものは起動されるシェルの引数となります。
- su -l foo
-
ユーザ foo のログインをシミュレートします。
- su - foo
-
上と同じです。
- su -
-
rootのログインをシミュレートします。
索引
歴史
コマンドは
AT&T System
v1
から登場しました。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 関連ファイル
-
- 関連項目
-
- 環境変数
-
- 使用例
-
- 歴史
-
Time: 07:06:19 GMT, January 12, 2009