Previous: nohup invocation, Up: Modified command invocation
suは,あるユーザが一時的に他のユーザになることを可能にします. それは実際の実効ユーザidと,与えられたuserの追加グループでコマン ドを(しばしば対話的シェルで)実行します.概要です.
su [option]... [user [arg]...]
userが与えられない場合,デフォルトはroot
のスーパーユーザ
です.使用するシェルは,userのpasswd
の項目から得られたも
の,または,そこで指定されていない場合は/bin/shを使用します.
userにパスワードがある場合,実行ユーザidがゼロ(スーパーユーザ)
の実行でなければ,suはパスワードの入力を促します.
デフォルトで,suはカレントディレクトリを変更しません.それは 環境変数HOMEとSHELLをuserのパスワード項目から設定し, userがスーパーユーザでない場合,USERとLOGNAMEを userに設定します.デフォルトでシェルはログインシェルではありませ ん.
追加のargは,シェルへの追加の引数として与えられます.
GNU suは,/bin/shや他の特殊なものを扱いません(例えば,
argv[0]
を-suに設定する,-cを特定のシェルに渡
す等です).
suは,suの試みに対する失敗と,追加で成功を報告する
ために,syslog
を使用するようにコンパイルすることが可能です.(シ
ステムがsyslog
をサポートしている場合です.)しかし,GNU
suは,ユーザがwheel
グループのメンバーかどうか調査しま
せん.以下を参照してください.
プログラムは,以下のオプションを受け入れます.Common optionsも参 照してください.
csh
やtcsh
の場合にのみ意味があり,それらに対する
-fオプションは,スタートアップファイル(.cshrc)の読み込
みを妨げます.Bourneのようなシェルを用いた場合,-fオプション
はファイル名のパターン拡張(glob)を利用不可能にし,それは役に立つとは思
えません.
1 su自身が失敗した場合.
126 サブシェルは見つかったが,呼出しできない場合.
127 サブシェルが見つからない場合.
それ以外では,サブシェルの終了ステータスになります.
(このセクションは,Richard Stallmanが作成しました.)
数人のユーザが,残り全員以上の総合的な権力を持ちたいと思うときもありま す.例えば,1984年に,MIT AI labの数人のユーザが,Twenexシステムのオペ レータパスワードを変更し,他の全員に秘密にし続けることで,権力を占有し ようとしました.(私は,このクーデターを妨害し,カーネルにパッチを行い ユーザに力を取り戻させようとしましたが,Unixでそうする方法を知りません でした.)
しかし,支配者がだれかに告げることもあります.通常のsuメカニ ズムでは,一旦,普通のユーザに同情する誰かが,ルートのパスワードを知る と,彼または彼女は残りを伝えることができます.“wheel group”の特徴は, これを不可能にし,そのため支配者の権力は固まります.
私は多数の味方で支配者の味方ではありません.ボスとシスアドのあらゆる作 業をサポートすることに慣れている場合,最初にこの考えが奇妙だと分かるこ とでしょう.