このセクションは,現在と異なる状況で他のコマンドを実行するコマンドを記述 します.異なるユーザとして環境を変更するなどです.
chroot
: 異なるルートディレクトリでコマンドを実行
chroot
は,指定されたルートディレクトリでコマンドを実行します.多
くのシステムでは,スーパーユーザのみこれが可能です.構文は以下のとおりで
す.
chroot newroot [command [args]...] chroot option
通常,ファイル名は,ディレクトリ構造のルート,すなわち`/'を起点とし
て調べられます.chroot
は,ルートをnewrootディレクトリ(存在
する必要があります)に変更し,オプションのargsを用いてcommand
を実行します.commandが指定されていない場合,デフォルトは,
@env{SHELL} 環境変数や,設定されていない場合は/bin/sh
の値が,
`-i'オプションで呼び出されますす.
オプションは`--help'と`--version'だけです.See section 共通のオプション.
env
: 変更された環境でコマンドを実行
env
は,変更された環境でコマンドを実行します.構文は以下のとおりで
す.
env [option]... [name=value]... @c [command [args]...] env
`variable=value'の形式の引数は,環境変数variable を値valueに設定します.valueは空にもできます (`variable=').変数をからの値に設定することは,アンセットする こととは異なります.
残りの最初の引数は,呼び出すプログラム名を指定します.それは@env{PATH}環 境変数によって検索されます.あらゆる残りの引数は,引数としてそのプログラ ムに渡されます.
環境指定に続いてコマンド名が指定されていない場合,結果となる環境が出力さ
れます.これは,printenv
のコマンド名を指定することに似ています.
プログラムは以下のオプションも受け入れます.section 共通のオプション,も参照 してください.
nice
: 変更されたスケジュール優先順位でコマンドを実行
nice
は,ジョブのスケジュールの優先順位を出力または変更します.構
文は以下のとおりです.
nice [option]... [command [arg]...]
引数が与えられていない場合,nice
は現在のスケジュールの優先順位を
出力し,それは継承されます.それ以外の場合,nice
は,与えられたコ
マンドをそのスケジュール優先順位を調整しながら実行します.
adjustmentが与えられていない場合,コマンドの優先順位は10増加します.
負の調整を指定するためには適切な特権が必要です.nice
が調整可能な
優先順位は,-20(最優先)から19(最低)までです.
ほとんどのシェルには同じ名前のシェル組み込みコマンドがあるので,装飾なし のスクリプトのコマンド名や対話的に使用すると,ここで記述されていない異な る機能を得る可能性があります.
プログラムは以下のオプションも受け入れます.section 共通のオプション,も参照 してください.
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 共通のオプション.
su
: 適切なユーザとグループidを用いてコマンドを実行
su
は,あるユーザが一時的に他のユーザになることを可能とします.そ
れは実際の実効ユーザidと,与えられたuserの追加グループでコマンドを
(しばしば対話的シェルで)実行します.構文は以下のとおりです.
su [option]... [user [arg]...]
userが与えられない場合,デフォルトはroot
のスーパーユーザで
す.使用するシェルは,userのpasswd
項目から得られたもの,ま
たは,そこで指定されていない場合は`/bin/sh'を使用します.user
にパスワードを持つ場合,実行ユーザidがゼロ(スーパーユーザ)の実行でなけれ
ば,su
はパスワードの入力を促します.
デフォルトで,su
はカレントディレクトリを変更しません.それは環境
変数@env{HOME}と@env{SHELL}をuserのパスワード項目から設定し,
userがスーパーユーザでない場合,@env{USER}と@env{LOGNAME}を
userに設定します.デフォルトでシェルはログインシェルではありません.
追加のargは,シェルの追加の引数として与えられます.
GNU su
は,`/bin/sh'や他の特殊なものを扱いません(例えば,
argv[0]
を`-su'に設定する,-c
をあるシェルに渡す等で
す.).
su
は,su
の試みに対し,オプションの失敗とオプションの成功を
報告するためにsyslog
を使用するようにコンパイル可能です.(システム
がsyslog
をサポートしている場合です.)しかし,GNU su
は,ユー
ザがwheel
グループのメンバーかどうか調査しません.以下を参照してく
ださい.
プログラムは,以下のオプションを受け入れます.section 共通のオプション,も参 照してください.
-c
オプションを用いて渡します.
-f
オプションを渡します.これはおそらく,シェルの実行が
csh
やtcsh
の場合にのみ意味があり,それらに対する-f
オ
プションは,スタートアップファイル(`.cshrc')の読み込みを妨げます.
Bourneのようなシェルを用いた場合,-f
オプションはファイル名のパター
ン拡張(glob)を利用不可能にし,それは役に立つとは思えません.
su
を実行しているユーザがスーパーユーザで,userのシェ
ルが制限されていない場合は,userのパスワード項目から得られるシェル
の代わりに,環境変数@env{SHELL}で与えられたシェルを実行します.@dfn{制限
されているシェル}は,ファイル`/etc/shells'や,そのファイルが存在し
ない場合はコンパイルされたリストにリストアップされていないものです.この
オプションが行うことの一部は,--login
と--shell
で優先可能で
す.
su
を実行しているユーザがスーパーユーザで,userのシェルが限
定されていない(真上の`-m'を参照してください)場合は,userのパ
スワード項目から得られるシェルの代わりに,shellを実行します.
GNU su
が`wheel'グループをサポートしない理由
(このセクションは,Richard Stallmanが作成しました.)
数人のユーザが,残り全員以上の総合的な権力を持ちたいと思うときもあります. 例えば,1984年に,MIT AI labの数人のユーザが,Twenexシステムのオペレータ パスワードを変更し,他の全員に秘密にし続けることで,権力を占有しようとし ました.(私は,このクーデターを妨害し,カーネルにパッチを行いユーザに力 を取り戻させようとしましたが,Unixでそうする方法を知りませんでした.)
しかし,支配者がだれかに告げることもあります.通常のsu
メカニズム
では,一旦,普通のユーザに同情する誰かが,ルートのパスワードを知ると,彼
または彼女は残りを伝えることができます."wheel group"の特徴は,これを
不可能にし,そのため支配者の権力は固まります.
私は多数の味方で支配者の味方ではありません.ボスとシスアドのあらゆる作業 をサポートすることに慣れている場合,最初にこの考えが奇妙だと分かることで しょう.
Go to the first, previous, next, last section, table of contents.