su
Section: User Commands (1)
Updated: 18 June 2002
Index
JM Home Page
roff page
名前
su - ユーザー ID とグループ ID を変更してシェルを起動する
書式
su
[-] [-flmp] [-c command] [-s shell] [--fast] [--login]
[--preserve-environment]
[--command=command] [--shell=shell]
[user [arg...]]
説明
su
はあるユーザーが一時的に他のユーザになるために用いられる。
su
は
user
の実ユーザー ID、実効ユーザー ID、グループ ID、および所属グループ
の権限を与えてコマンドを実行する (対話式のシェルであることが多い)。
user
が与えられなかった場合、デフォルトは root すなわちスーパーユーザーである。
実行されるシェルは
user
のパスワードエントリから選択される。ここに何も書かれていない場合は
/bin/sh が実行される。
user
にパスワードがある場合には、
su
はパスワードを要求するプロンプトを表示する。ただし
su
を実行したのが実ユーザー ID 0 (スーパーユーザー) の場合には
パスワード認証は行われない。
su
はデフォルトではカレントディレクトリを変更しない。また
su
は
環境変数
HOME と SHELL
を
user
のパスワードエントリの値にセットする。また
user
がスーパーユーザー以外の場合には、環境変数
USER と LOGNAME
を
user
にセットする。デフォルトでは、
起動されるシェルはログインシェルにはならない。
その他に引き数が与えられた場合には、それらはシェルに渡され、
引き数としてシェルに付加される。
su
は /bin/sh あるいはそれ以外のいかなるシェルも特別には扱わない
(argv[0] に "-su" を設定したり、あるシェルにだけ -c を渡したり、
といったことはしない)。
syslog(3)
に対応しているシステムでは、
su
が失敗したとき
syslog にレポートするようにコンパイルすることができる
(成功をレポートするようにもできる)。
オプション
- -c command, --command=command
-
対話的なシェルを起動するのではなく、シェルに
-c
オプションとともに
command
(実行されるコマンドライン一行) を渡す。
- -f, --fast
-
シェルに
-f
オプションを渡す。これはおそらく
csh(1)
と
tcsh(1)
でのみ意味を持つ。これらのシェルでは
-f
オプションを指定すると、スタートアップファイル (.cshrc) を読み込まない。
Bourne 系のシェルでは
-f
オプションはファイル名パターンの展開 (glob) を抑制する。
これは大抵の場合は望ましい動作ではないだろう。
- -, -l, --login
-
シェルをログインシェルにする。すなわち以下のような取り扱いをする:
すべての環境変数を解除する。その上で
TERM, HOME, SHELL
を前述のように設定し、
USER, LOGNAME
を同じく前述のように (スーパーユーザーであっても) 設定する。
続いて
PATH
をコンパイル時のデフォルト値に設定する。ディレクトリを
user
のホームディレクトリに変更する。シェル名の前に `-' を付加し、
シェルにログイン時のスタートアップファイルを読ませる。
- -m, -p, --preserve-environment
-
環境変数
HOME, USER, LOGNAME, SHELL
を変更しない。
/etc/passwd で指定されている
user
のシェルではなく、現在の環境変数
SHELL
で指定されているシェルを実行する。ただし
su
を実行するユーザーがスーパーユーザではなく、
user
によるシェルの実行が制限されている場合はこの限りではない。
実行が制限されているシェルとは、
/etc/shells にリストされていないシェル、あるいは
/etc/shells がなければコンパイル時の指定リストに存在しないシェルのことである。
このオプションが実行する作業の一部は
--login
または
--shell
によって上書きされる。
- -s, --shell shell
-
/etc/passwd に記述された
user
のシェルの代わりに
shell
を実行する。ただし
su
を実行するユーザーがスーパーユーザではなく、
user
によるシェルの実行が制限されている場合はこの限りではない。
- --help
-
標準出力に使用方法のメッセージを出力して正常終了する。
- --version
-
標準出力にバージョン情報を出力して正常終了する。
GNU su で wheel グループをサポートしないわけ (Richard Stallman)
ときおり、少数のユーザーによって、
他のユーザーに対する全権を掌握しようとする試みがなされることがある。
例えば 1984 年、 MIT AI ラボの少数のユーザーは
Twenex システムのオペレーターパスワードの変更権限を強奪し、
これを他のユーザーから秘匿することに決定した
(この際には私はこのクーデターの裏をかき、
カーネルにパッチを当てて権限を取り返すことに成功した。
しかしこれが Unix であったら、私にはどうすればよいかわからなかっただろう)。
しかしながら、時には専制者も秘密を漏らすものである。
通常の su のメカニズムでは、
一般ユーザーの側に立つ者が root のパスワードを知れば、
これを他のユーザーにも知らせることができる。
しかし "wheel group" 機能はこれを不可能にし、
結果として専制者達の権限を強固たるものにしてしまう。
私は大衆の側に立つものであり、専制的な立場には反対する。
あなたはボスやシステム管理者のやり口に従うことに慣れているかも知れないが、
その場合はまずそのこと自身を不思議に思うべきではないだろうか。
注意
プログラムのバグについては bug-sh-utils@gnu.org に報告してください。
ページの更新は Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が行っています。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- GNU su で wheel グループをサポートしないわけ (Richard Stallman)
-
- 注意
-
This document was created by
man2html,
using the manual pages.
Time: 16:46:44 GMT, November 24, 2023