[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

11. 変更されたコマンドの呼び出し

このセクションは,現在と異なる状況で他のコマンドを実行するコマンドを記述 します.異なるユーザとして環境を変更するなどです.


11.1 chroot: 異なるルートディレクトリでコマンドを実行

chrootは,指定されたルートディレクトリでコマンドを実行します.多 くのシステムでは,スーパーユーザのみこれが可能です.構文は以下のとおりで す.

 
chroot newroot [command [args]…]
chroot option

通常,ファイル名は,ディレクトリ構造のルート,すなわち`/'を起点とし て調べられます.chrootは,ルートをnewrootディレクトリ(存在 する必要があります)に変更し,オプションのargsを用いてcommand を実行します.commandが指定されていない場合,デフォルトは, SHELL 環境変数や,設定されていない場合は/bin/shの値が, `-i'オプションで呼び出されますす.

オプションは`--help'と`--version'だけです.See section 共通のオプション.


11.2 env: 変更された環境でコマンドを実行

envは,変更された環境でコマンドを実行します.構文は以下のとおりで す.

 
env [option]… [name=value]… [command [args]…]
env

`variable=value'の形式の引数は,環境変数variable を値valueに設定します.valueは空にもできます (`variable=').変数をからの値に設定することは,アンセットする こととは異なります.

残りの最初の引数は,呼び出すプログラム名を指定します.それはPATH環 境変数によって検索されます.あらゆる残りの引数は,引数としてそのプログラ ムに渡されます.

環境指定に続いてコマンド名が指定されていない場合,結果となる環境が出力さ れます.これは,printenvのコマンド名を指定することに似ています.

プログラムは以下のオプションも受け入れます.共通のオプション,も参照 してください.

` -u name'
` --unset=name'

変数nameが環境の場合,それを環境から削除します.

` -'
` -i'
` --ignore-environment'

継承された環境を無視して,空の環境を用いて開始します.


11.3 nice: 変更されたスケジュール優先順位でコマンドを実行

niceは,ジョブのスケジュールの優先順位を出力または変更します.構 文は以下のとおりです.

 
nice [option]… [command [arg]…]

引数が与えられていない場合,niceは現在のスケジュールの優先順位を 出力し,それは継承されます.それ以外の場合,niceは,与えられたコ マンドをそのスケジュール優先順位を調整しながら実行します. adjustmentが与えられていない場合,コマンドの優先順位は10増加します. 負の調整を指定するためには適切な特権が必要です.niceが調整可能な 優先順位は,-20(最優先)から19(最低)までです.

ほとんどのシェルには同じ名前のシェル組み込みコマンドがあるので,装飾なし のスクリプトのコマンド名や対話的に使用すると,ここで記述されていない異な る機能を得る可能性があります.

プログラムは以下のオプションも受け入れます.共通のオプション,も参照 してください.

` -n adjustment'
` -adjustment'
` --adjustment=adjustment'

コマンドの優先順位に,10の代わりにadjustmentを加えます.


11.4 nohup: ハングアップを免除したコマンドの実行

nohupは,ログアウト後にバックグランドでコマンドを実行し続けること を可能にするため,ハングアップシグナルを無視して,与えられたコマンドを実 行します.構文は以下のとおりです.

 
nohup command [arg]…

nohupは,commandのスケジュールの優先順位を5増加するので,実 行が若干小さく変更されます.標準出力が端末の場合,それとその標準エラーは, ファイル`nohup.out'に追加するようにリダイレクトされます.書き込み不 可能な場合,それらはファイル`$HOME/nohup.out'に追加します.それも書 き込み不可能な場合,コマンドは実行されません.

nohupが`nohup.out'や`$HOME/nohup.out'を作成する場合, "group"や"other"のアクセス許可を用いてそれを作成しません.出力ファイ ルが既存の場合は,その許可を変更しません.

nohupは,バックグランドで実行するようにするコマンドを,自動的に配 置しません.コマンド行の終りに`&'を用いて,明示する必要があります.

オプションは`--help'と`--version'のみです.See section 共通のオプション.


11.5 su: 適切なユーザとグループidを用いてコマンドを実行

suは,あるユーザが一時的に他のユーザになることを可能とします.そ れは実際の実効ユーザidと,与えられたuserの追加グループでコマンドを (しばしば対話的シェルで)実行します.構文は以下のとおりです.

 
su [option]… [user [arg]…]

userが与えられない場合,デフォルトはrootのスーパーユーザで す.使用するシェルは,userpasswd項目から得られたもの,ま たは,そこで指定されていない場合は`/bin/sh'を使用します.user にパスワードを持つ場合,実行ユーザidがゼロ(スーパーユーザ)の実行でなけれ ば,suはパスワードの入力を促します.

デフォルトで,suはカレントディレクトリを変更しません.それは環境 変数HOMESHELLuserのパスワード項目から設定し, userがスーパーユーザでない場合,USERLOGNAMEuserに設定します.デフォルトでシェルはログインシェルではありません.

追加のargは,シェルの追加の引数として与えられます.

GNU suは,`/bin/sh'や他の特殊なものを扱いません(例えば, argv[0]を`-su'に設定する,-cをあるシェルに渡す等で す.).

suは,suの試みに対し,オプションの失敗とオプションの成功を 報告するためにsyslogを使用するようにコンパイル可能です.(システム がsyslogをサポートしている場合です.)しかし,GNU suは,ユー ザがwheelグループのメンバーかどうか調査しません.以下を参照してく ださい.

プログラムは,以下のオプションを受け入れます.共通のオプション,も参 照してください.

` -c command'
` --command=command'

単一のコマンドラインで実行するcommandを,対話的シェルを開始する代 わりに,-cオプションを用いて渡します.

` -f'
` --fast'

シェルに-fオプションを渡します.これはおそらく,シェルの実行が cshtcshの場合にのみ意味があり,それらに対する-fオ プションは,スタートアップファイル(`.cshrc')の読み込みを妨げます. Bourneのようなシェルを用いた場合,-fオプションはファイル名のパター ン拡張(glob)を利用不可能にし,それは役に立つとは思えません.

` -'
` -l'
` --login'

シェルをログインシェルにします.これは以下のことを意味します.TERMHOME,そしてSHELL(上記で記述されるように設定されている),そ してUSERLOGNAME(スーパーユーザでも,上記で記述されるように 設定されている)以外の,すべての環境変数をアンセットし,PATHをコン パイルされているデフォルト値に設定します.userのホームディレクトリ に変更します.ログインスタートアップファイルを読み込ませるために, `-'をシェルの名前の前に前置してください.

` -m'
` -p'
` --preserve-environment'

環境変数HOMEUSERLOGNAME,またはSHELLを変更し ません.suを実行しているユーザがスーパーユーザで,userのシェ ルが制限されていない場合は,userのパスワード項目から得られるシェル の代わりに,環境変数SHELLで与えられたシェルを実行します.制限 されているシェルは,ファイル`/etc/shells'や,そのファイルが存在し ない場合はコンパイルされたリストにリストアップされていないものです.この オプションが行うことの一部は,--login--shellで優先可能で す.

` -s shell'
` --shell=shell'

suを実行しているユーザがスーパーユーザで,userのシェルが限 定されていない(真上の`-m'を参照してください)場合は,userのパ スワード項目から得られるシェルの代わりに,shellを実行します.

GNU suが`wheel'グループをサポートしない理由

(このセクションは,Richard Stallmanが作成しました.)

数人のユーザが,残り全員以上の総合的な権力を持ちたいと思うときもあります. 例えば,1984年に,MIT AI labの数人のユーザが,Twenexシステムのオペレータ パスワードを変更し,他の全員に秘密にし続けることで,権力を占有しようとし ました.(私は,このクーデターを妨害し,カーネルにパッチを行いユーザに力 を取り戻させようとしましたが,Unixでそうする方法を知りませんでした.)

しかし,支配者がだれかに告げることもあります.通常のsuメカニズム では,一旦,普通のユーザに同情する誰かが,ルートのパスワードを知ると,彼 または彼女は残りを伝えることができます."wheel group"の特徴は,これを 不可能にし,そのため支配者の権力は固まります.

私は多数の味方で支配者の味方ではありません.ボスとシスアドのあらゆる作業 をサポートすることに慣れている場合,最初にこの考えが奇妙だと分かることで しょう.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.