日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
CHROOT(2) FreeBSD システムコールマニュアル CHROOT(2) 名称 chroot -- ルートディレクトリを変更する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <unistd.h> int chroot(const char *dirname); 解説 dirname 引数は、ASCII ヌル文字によって終了するディレクトリのパス名のアド レスです。chroot() システムコールによって、dirname は、ルートディレクト リ、すなわち、`/' で始まるパス名のパス検索のための出発点となります。 ディレクトリがルートディレクトリになるために、プロセスには、そのディレク トリに対して実行 (検索) アクセスパーミッションがなければなりません。 chroot() には、プロセスのカレントディレクトリに効果がないことに注意される べきです。 この呼び出しは、スーパユーザに制限されます。 `kern.chroot_allow_open_directories' sysctl 変数の設定に依存して、参照す るディレクトリが次のように chroot() の失敗を行うかもしれない、ファイル記 述子をオープンします: `kern.chroot_allow_open_directories' が 0 に設定されるなら、chroot() は、 オープンされたあらゆるディレクトリがあるなら、常に EPERM で失敗します。 `kern.chroot_allow_open_directories' が 1 (デフォルト) に設定されるなら、 chroot() は、オープンされたあらゆるディレクトリがあり、プロセスが既に chroot() システムコールに影響されているなら、EPERM で失敗します。 `kern.chroot_allow_open_directories' のためのあらゆる他の値は、オープンし ているディレクトリのためのチェックをバイパスし、他のシステムにまだ存在す る chroot() の歴史的で安全でない振る舞いを模倣します。 戻り値 成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno にエラーを示す値が設定されます。 エラー chroot() システムコールは、次の場合に失敗し、ルートディレクトリは、変更さ れません: [ENOTDIR] パス名の構成要素がディレクトリではありません。 [EPERM] 実効ユーザ ID が、スーパユーザではないか、または、1 つ 以上のファイル記述子がオープンされたディレクトリです。 [ENAMETOOLONG] パス名の構成要素が、255 文字を越えているか、または、全 体のパス名が、1023 文字を越えています。 [ENOENT] 指定されたディレクトリが存在しません。 [EACCES] 検索パーミッションがパス名のあらゆる構成要素に対して拒 否されます。 [ELOOP] パス名の変換で、あまりにも多くのシンボリックリンクに遭 遇しました。 [EFAULT] dirname 引数が、プロセスの割り付けられたアドレス空間の 外側を指しています。 [EIO] I/O エラーがファイルシステムから読み込みか、書き込む間 に起こりました。 [EINTEGRITY] 破損したデータが、ファイルシステムから読み込む間に検出 されました。 関連項目 chdir(2), jail(2) 歴史 chroot() システムコールは、4.2BSD で登場しました。Version 2 of the Single UNIX Specification (``SUSv2'') の ``遺産'' としてマークされ、後の標準で削 除されました。 バグ プロセスがターゲットのディレクトリにその作業ディレクトリに変更することが できるが、(オープンされたディレクトリのためのチェック、または MAC チェッ クのように) 別のアクセス制御が失敗をチェックするなら、このシステムコール が変更されたままのプロセスの作業ディレクトリで、エラーを返す可能性があり ます。 セキュリティの考察 システムには、プロセスが開始した後にロードするかもしれないファイルへの多 くの決め打ちされたパスがあります。成功した chroot 呼び出しの直後に特権を 落とし、chroot ルートの制限されたサブツリーへの書き込みアクセスを禁止する ことが一般的に推奨されます。例えば、サンドボック化されたユーザは、あらゆ る有名なシステムディレクトリへの書き込みアクセスを持たないように、サンド ボックを設定します。 システムの残りから完全に隔離するために、代わりに jail(2) を使用します。 FreeBSD 13.2 September 29, 2020 FreeBSD 13.2