diff options
Diffstat (limited to 'documentation/content/ja/books/handbook')
34 files changed, 2316 insertions, 1649 deletions
diff --git a/documentation/content/ja/books/handbook/_index.adoc b/documentation/content/ja/books/handbook/_index.adoc index b1ad0d22c0..3e4830d54b 100644 --- a/documentation/content/ja/books/handbook/_index.adoc +++ b/documentation/content/ja/books/handbook/_index.adoc @@ -2,7 +2,7 @@ title: FreeBSD ハンドブック authors: - author: FreeBSD ドキュメンテーションプロジェクト -copyright: 1995-2022 The FreeBSD Documentation Project +copyright: 1995-2023 The FreeBSD Documentation Project description: 絶えず進化している、FreeBSD ユーザのための包括的な情報源 trademarks: ["freebsd", "ibm", "ieee", "redhat", "3com", "adobe", "apple", "intel", "linux", "microsoft", "opengroup", "sun", "realnetworks", "oracle", "3ware", "arm", "adaptec", "google", "heidelberger", "intuit", "lsilogic", "themathworks", "thomson", "vmware", "wolframresearch", "xiph", "xfree86", "general"] tags: ["FreeBSD ハンドブック", "ハンドブック"] @@ -10,7 +10,8 @@ next: books/handbook/preface add_single_page_link: true showBookMenu: true weight: 0 -path: "/books/handbook/" +params: + path: "/books/handbook/" bookOrder: 1 --- @@ -35,30 +36,19 @@ include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] +:chapters-path: content/{{% lang %}}/books/handbook/ endif::[] ifdef::backend-pdf,backend-epub3[] +:chapters-path: include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] +:chapters-path: include::../../../../../shared/asciidoctor.adoc[] endif::[] -[.abstract-title] -概要 - -FreeBSD へようこそ! このハンドブックは __FreeBSD {rel130-current}-RELEASE__ および __FreeBSD {rel123-current}-RELEASE__ のインストールと日常での使い方について記述したものです。 -本ハンドブックはさまざまな人々による編集の成果で、 現在も改編作業中です。 いま存在するセクションの中には情報が古くなってしまっているものがあります。 もし、この文書を新しくしたり、 新しい情報の追加に協力したいとお考えなら、 {freebsd-doc} まで電子メールを (英語で) 送ってください。 - -このハンドブックの最新バージョンは、いつでも https://www.FreeBSD.org/ja/[FreeBSD ウェブサイト] から入手できます。 -この文書の以前のバージョンは https://docs.FreeBSD.org/doc/[https://docs.FreeBSD.org/doc/] から入手できます。 -他のさまざまな文書形式、圧縮形式は https://download.freebsd.org/doc/[FreeBSD ダウンロードサーバ] や link:./mirrors#mirrors-http[ミラーサイト] からダウンロードできます。 -ハンドブックおよび他の文書は、link:https://www.FreeBSD.org/ja/search/[検索ページ] で検索できます。 - -FreeBSD ハンドブック日本語版の作成は FreeBSD 日本語ドキュメンテーションプロジェクト (FreeBSD doc-jp) がおこなっています。 -ハンドブックの日本語訳に関することは FreeBSD {doc-jp} において日本語で議論されています。 - -文書の日本語訳に関するお問い合わせや、 文書の原文に関する問い合わせをしたいが英語が得意でないという方は FreeBSD {doc-jp} まで、日本語でコメントをお寄せください。 +include::{chapters-path}introduction.adoc[] ''' diff --git a/documentation/content/ja/books/handbook/advanced-networking/_index.adoc b/documentation/content/ja/books/handbook/advanced-networking/_index.adoc index 6ada5ec7fa..9ba8682bdf 100644 --- a/documentation/content/ja/books/handbook/advanced-networking/_index.adoc +++ b/documentation/content/ja/books/handbook/advanced-networking/_index.adoc @@ -1,11 +1,12 @@ --- -title: 第21章 高度なネットワーク +title: 第20章 高度なネットワーク part: パートIV. ネットワーク通信 prev: books/handbook/mail next: books/handbook/partv showBookMenu: true -weight: 26 -path: "/books/handbook/" +weight: 25 +params: + path: "/books/handbook/advanced-networking/" --- [[advanced-networking]] @@ -16,7 +17,7 @@ path: "/books/handbook/" :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 21 +:sectnumoffset: 20 :partnums: :source-highlighter: rouge :experimental: diff --git a/documentation/content/ja/books/handbook/basics/_index.adoc b/documentation/content/ja/books/handbook/basics/_index.adoc index f33c609a53..6eddd7cc14 100644 --- a/documentation/content/ja/books/handbook/basics/_index.adoc +++ b/documentation/content/ja/books/handbook/basics/_index.adoc @@ -1,15 +1,18 @@ --- -title: 第3章 UNIX の基礎知識 +title: 第3章 FreeBSD の基礎知識 part: パートI. 導入 prev: books/handbook/bsdinstall next: books/handbook/ports +description: FreeBSD オペレーティングシステムの基本的なコマンドと機能について +tags: ["basics", "virtual consoles", "users", "management", "permissions", "directory structure", "disk organization", "mounting", "processes", "daemons", "shell", "editor", "manual pages", "devices"] showBookMenu: true weight: 5 -path: "/books/handbook/" +params: + path: "/books/handbook/basics/" --- [[basics]] -= UNIX の基礎知識 += FreeBSD の基礎知識 :doctype: book :toc: macro :toclevels: 1 @@ -49,11 +52,14 @@ endif::[] [[basics-synopsis]] == この章では -この章では FreeBSD オペレーティングシステムの基本的なコマンドと機能について記述しています。 ここに書かれてあることのほとんどは、 どんな UNIX(R) オペレーティングシステムにもあてはまります。 この章に書いてあることに馴染みがあるなら、 この章は気軽に流し読みしてください。 あなたが FreeBSD の初心者なら、 何か質問する前にこの章を読んでおいた方がきっといいはずです。 +この章では FreeBSD オペレーティングシステムの基本的なコマンドと機能について記述しています。 +ここに書かれてあることのほとんどは、どんな UNIX(R) -like なオペレーティングシステムにもあてはまります。 +FreeBSD の初心者であれば、この章を読んでおいた方がきっといいはずです。 この章を読んで分かることは、次のようなことです。 -* FreeBSD の "仮想コンソール" の使い方 +* 仮想コンソールの使い方と設定方法 +* FreeBSD システム上でユーザやグループを作成し管理する方法 * UNIX(R) のファイルの許可属性の仕組みと FreeBSD のファイルフラグについて * FreeBSD のファイルシステムの構成 * FreeBSD のディスク構成 @@ -67,169 +73,595 @@ endif::[] [[consoles]] == 仮想コンソールと端末 -FreeBSD は様々な使い方ができます。その中の一つが、 テキスト端末でコマンドを入力することです。この方法で FreeBSD を使えば、 UNIX(R) オペレーティングシステムの能力と柔軟性を手にすることができます。 この節では、"コンソール" と "端末" はどのようなもので、FreeBSD でどう使うかを 説明します。 - -[[consoles-intro]] -=== コンソール - -起動時に自動的にグラフィカルな環境が起動するように FreeBSD を設定していなければ、システムが起動してスタートアップ スクリプトが実行されると、すぐにログインプロンプトが出てくるでしょう。 次のようものが表示されるはずです。 +起動時に自動的にグラフィカルな環境が起動するように FreeBSD を設定していなければ、システムが起動すると、以下のようなコマンドラインのログインプロンプトが表示されます。 [source,shell] .... -Additional ABI support:. -Local package initialization:. -Additional TCP options:. - -Fri Sep 20 13:01:06 EEST 2002 - -FreeBSD/i386 (pc3.example.org) (ttyv0) +FreeBSD/amd64 (pc3.example.org) (ttyv0) login: .... -あなたのシステムではメッセージが多少異なるかもしれませんが、 似たようなものが見られるはずです。 最後の 2 行が、今関心を向けているものです。 最後から 2 行目は、以下のようになっています。 +最初の行はシステムの情報です。 +`amd64` は、このシステム上で 64 ビット版の FreeBSD が動作していることを示しています。 +ホスト名は `pc3.example.org`、`ttyv0` は "システムコンソール" であることを示しています。 +次の行はログインプロンプトです。 + +FreeBSD はマルチユーザシステムなので、ユーザを区別する何がしかの手段が必要です。 +システム上のプログラムを実行できるようになるには、すべてのユーザに対してシステムにログインすることが義務付けられています。 +すべてのユーザは、一意な "ユーザ名" と "パスワード" を持っています。 + +システムコンソールにログインするには、システムのインストール時に crossref:bsdinstall[bsdinstall-addusers,ユーザの追加] で追加したユーザ名を入力して、kbd:[Enter] を押してください。 +次にそのユーザのパスワードを入力して、kbd:[Enter] を押してください。 +セキュリティの観点から、パスワードは _表示されません_。 + +パスワードを正確に入力したら、日々のメッセージ (MOTD) が表示され、 +コマンドプロンプトが表示されます。 +ユーザ作成時に選択したシェルに依存しますが、このプロンプトは `+#+`, `$` または `%` といった記号です。 +プロンプトはユーザが FreeBSD のシステムコンソールへログインし、利用可能なコマンドを実行する準備ができていることを示しています。 + +[[consoles-virtual]] +=== 仮想コンソール + +システムコンソールからシステムに対話的にコマンドを実行できますが、FreeBSD システム上でキーボードによりコマンドラインから利用しているユーザは、通常代わりに仮想コンソールにログインします。 +デフォルトではシステムからのメッセージはシステムコンソールに出力され、これらのメッセージが、ユーザが作業しているコマンドまたはファイル上に表示されるため、ユーザが現在の作業に集中できなくなるためです。 + +デフォルトでは FreeBSD は、複数の仮想コンソールを表示してコマンドを入力できるように設定されています。 +各仮想コンソールは、個別のログインプロンプトおよびシェルを持っており、簡単に仮想コンソール間の切り替えができます。 +これにより、グラフィカルな環境において同時に複数のウィンドウを開いてコマンドラインの環境を提供できます。 + +FreeBSD では kbd:[Alt+F1] から kbd:[Alt+F8] までのキーの組み合わせが、仮想コンソール間の切り替えに予約されています。 +システムコンソール (`ttyv0`) に切り替えるには、kbd:[Alt+F1] を使ってください。 +最初の仮想コンソール (`ttyv1`) にアクセスするには kbd:[Alt+F2]、2 番目の仮想コンソール (`ttyv2`) にアクセスするには kbd:[Alt+F3]、といったように使ってください。 +Xorg をグラフィカルなコンソールとして使用しているときには、kbd:[Ctrl+Alt+F1] の組み合わせを使用すると、テキストベースの仮想コンソールへ戻ります。 + +あるコンソールから他に切り替えるのに応じて、FreeBSD は画面への出力を管理します。 +結果として、FreeBSD で動かすコマンドを入力するのに使える複数の画面とキーボードを仮想的に実現できるのです。 +ある仮想コンソールで実行したプログラムは、ユーザが別の仮想コンソールに切り替えても実行を停止しません。 + +FreeBSD のコンソールおよびキーボードドライバに関するさらなる技術的な説明については、man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] および man:vt[4] を参照してください。 + +FreeBSD では以下の `/etc/ttys` のセクションのように複数の利用可能な仮想コンソールが設定されています。 [.programlisting] .... -FreeBSD/i386 (pc3.example.org) (ttyv0) +# name getty type status comments +# +ttyv0 "/usr/libexec/getty Pc" xterm on secure +# Virtual terminals +ttyv1 "/usr/libexec/getty Pc" xterm on secure +ttyv2 "/usr/libexec/getty Pc" xterm on secure +ttyv3 "/usr/libexec/getty Pc" xterm on secure +ttyv4 "/usr/libexec/getty Pc" xterm on secure +ttyv5 "/usr/libexec/getty Pc" xterm on secure +ttyv6 "/usr/libexec/getty Pc" xterm on secure +ttyv7 "/usr/libexec/getty Pc" xterm on secure +ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure .... -この行には、 起動したばかりのシステムについていくばくかの情報があります。 あなたは、x86 アーキテクチャ上の Intel または その互換プロセッサ上で動作している "FreeBSD" の コンソールを目にしているのです。このマシンの名称 (どの UNIX(R) 機にも名前がついて います) は `pc3.example.org` で、 あなたはそのシステムコンソール、[.filename]#ttyv0# 端末に向かっています。 +仮想コンソールを無効にするには、無効にしたい仮想コンソールの行をコメント記号 (`+#+`) から始まるように設定してください。 +たとえば、利用可能な仮想コンソールを 8 つから 4 つに減らす場合には、`ttyv5` から `ttyv8` までの仮想コンソールを表す最後の 4 行の先頭に `+#+` を挿入してください。 +システムコンソールを表す `ttyv0` から始まる行はコメントアウト _しないでください。_ +最後の仮想コンソール (`ttyv8`) は、 crossref:x11[x11,X Window System] で説明されているように Xrog がインストールされて設定されている場合に、グラフィカル環境にアクセスするために使用されます。 + +このファイルのそれぞれのカラムと仮想コンソールに設定可能なオプションの詳しい説明は、man:ttys[5] のマニュアルを参照してください。 -最後の行は、常に以下のものになります。 +[[consoles-singleuser]] +=== シングルユーザモード + +FreeBSD のブートメニューでは、"シングルユーザモード" と表示されているオプションが提供されています。 +このオプションを選択すると、システムは "シングルユーザモード" と呼ばれる特別なモードで起動します。 +このモードは、システムが起動しない場合に修正のため、または `root` のパスワードが分からなくなってしまいリセットするときなど、特別な状況で利用されます。 +シングルユーザモードで動かしている場合は、ネットワークや他の仮想コンソールは利用できません。 +しかし、システムへの完全な `root` 権限を利用でき、デフォルトの設定では `root` のパスワードは必要ありません。 +このような理由のため、このモードで起動する場合には物理的なキーボードへのアクセスが必要であり、FreeBSD システムの安全性の観点からキーボードに物理的にアクセスできる人を決めておく事が必要です。 +シングルユーザモードを管理する設定は、`/etc/ttys` ファイルの以下のセクションにあります。 [.programlisting] .... -login: +# name getty type status comments +# +# If console is marked "insecure", then init will ask for the root password +# when going to single-user mode. +console none unknown off secure .... -ここは、FreeBSD にログインするために "ユーザ名" を入力するところです。次の節でどうするか説明します。 +デフォルトでは、status は `secure` に設定されています。 +これは、キーボードへアクセスできるかユーザが誰であるかが重要ではない、もしくはアクセスできるユーザについては物理的なセキュリティポリシーでコントロールされていることが前提となっています。 +この設定を `insecure` に変更するケースとしては、システムは安全ではなく、誰でもキーボードにアクセスできる環境が想定されます。 +この行を `insecure` に変更すると、FreeBSD がシングルユーザモードで起動した場合に `root` のパスワードが要求されます。 -[[consoles-login]] -=== FreeBSD にログインする +[NOTE] +==== +__ `insecure` に変更する場合は十分注意してください! __ +`root` のパスワードを忘れてしまうと、シングルユーザモードで起動することはできますが、FreeBSD の起動のプロセスに詳しくない人が起動できるようにするのは難しいかも知れません。 +==== + +[[consoles-vidcontrol]] +=== コンソールのビデオモードの変更 -FreeBSD は、マルチユーザ、マルチプロセスなシステムです。 これは、1 台のマシンで何人もの人が交互に多くのプログラムを 動かせるシステムに与えられる正式な説明です。 +FreeBSD のデフォルトのビデオモードは 1024x768 や 1280x1024 など、グラフィックチップおよびディスプレイが対応しているサイズに調整されます。 +別のビデオモードを使うには、`VESA` モジュールをロードしてください。 -あらゆるマルチユーザシステムには、ある "ユーザ" を他のユーザと区別する何がしかの手段が必要です。 FreeBSD (とすべての UNIX(R) like なオペレーティングシステム) では、 すべてのユーザに対してプログラムの実行を可能にするのに、システムに "ログイン" することを義務付けてこれを実現しています。 どのユーザにも、一意な名前 ("ユーザ名") と個人的な秘密の鍵 ("パスワード") があります。 FreeBSD はユーザにプログラムの実行を許可する前に、 この 2 つの入力を要求します。 +[source,shell] +.... +# kldload vesa +.... -FreeBSD が起動してスタートアップスクリプトを実行し終わった 直後に、プロンプトを表示して有効なユーザ名の入力を促します。 +その後、ハードウェアが対応しているビデオモードを man:vidcontrol[1] を使って確認してください。 +以下を実行すると、対応しているビデオモードを調べることができます。 [source,shell] .... -login: +# vidcontrol -i mode .... -この例では `john` というユーザ名を使う ことにしましょう。このプロンプトに対して `john` と入力して、kbd:[Enter] を 押してください。そうすると、 次のような"パスワード"の入力を要求するプロンプトが 表示されます。 +このコマンドは、使用しているハードウェアが対応しているビデオモードの一覧を表示します。 +その後、man:vidcontrol[1] を `root` ユーザで実行して、新しく使用するビデオモードを選択してください。 [source,shell] .... -login: john +# vidcontrol MODE_279 +.... + +このビデオモードで良ければ、起動時に自動的に設定されるように `/etc/rc.conf` に以下のように追加してください。 + +[.programlisting] +.... +allscreens_flags="MODE_279" +.... + +[[users-synopsis]] +== ユーザと基本的なアカウント管理 + +FreeBSD は、複数のユーザが同時にコンピュータを使えるようにします。 スクリーンとキーボードの前に一度に座れるのはその中の一人だけですが ユーザは何人でもネットワークを通してログインできます。 システムを使うためには、 どのユーザもアカウントがなければなりません。 + +この章では、以下のことを説明します。 + +* FreeBSD システムにおけるさまざまな種類のユーザアカウントについて +* ユーザアカウントを追加、削除および変更する方法 +* ユーザやグループが利用できるリソースの上限を制御する方法 +* グループの作成、 およびグループにユーザをメンバとして追加する方法 + +[[users-introduction]] +=== アカウントの種類 + +FreeBSD システムへアクセスするには、 かならずアカウントが使われ、 また、プロセスもすべてユーザによって実行されるので、 ユーザとアカウントの管理は、重要なものです。 + +アカウントには大きく分けて三種類あります。 システムアカウント (system accounts)、ユーザアカウント (user accounts)、 そしてスーパーユーザ (superuser) です。 + +[[users-system]] +==== システムアカウント + +システムアカウントは、DNS、メール、 ウェブサーバといった各種サービスを運用するために使われます。 この目的は、セキュリティを確保するためです。 もしすべてのサービスがスーパーユーザで実行されていると、 それらのサービスはどんな動作でも可能となり、 適切な制限を適用することができません。 + +システムアカウントの具体例は、 `daemon`, `operator`, `bind`, `news` および `www` といったものです。 + +`nobody` は通常の特権を持たないシステムアカウントです。 しかし、`nobody` を利用するサービスが増えれば増えるほど、 それに所属するファイルやプロセスも増え、 その特権も大きくなるということを忘れないようにしてください。 + +[[users-user]] +==== ユーザアカウント + +ユーザアカウントは、 主に現実のユーザがシステムにアクセスする手段として用いられるものです。 システムにアクセスするすべてのユーザは、 それぞれ唯一のユーザアカウントを持つべきです。 こうすることで管理者は誰が何を行なっているかがわかりますし、 他の人の設定を壊してしまうようなことを避けることができます。 + +それぞれのユーザは快適にシステムを利用するため、 シェル、エディタ、キー設定、言語など、 各自の環境をセットアップすることができます。 + +FreeBSD システム上のどのアカウントにも、 以下のような情報がなにかしら結び付けられています。 + +ユーザ名:: +`login:` プロンプトに対して入力するユーザの名前です。 +各ユーザは一意なユーザ名を持つ必要があります。 +有効なユーザ名を作成するには man:passwd[5] に記載されているいくつもの規則があります。 +アプリケーションの上位互換性を保つために、8 文字以下の小文字からなるユーザ名を使うことが推奨されています。 + +パスワード:: +各アカウントにはパスワードがあります。 + +ユーザ ID (UID):: +ユーザ ID (UID) は、 FreeBSD システムがユーザを一意に識別するための数値です。 ユーザ名を指定できるコマンドは、 ユーザ名を UID に変換してから扱っています。 +65535 より大きな UID は、ソフトウェアによっては互換性の問題を引き起こす可能性があるので、65535 以下の UID を使用することが推奨されています。 + +グループ ID (GID):: +グループ ID (GID) は、 ユーザが属する第一グループを一意に識別するための数値です。 グループは、UID ではなく、 ユーザの GID に基づいて資源へのアクセスを制御する仕組みです。 これは、ある種の設定ファイルのサイズを大幅に小さくします。 ユーザは、複数のグループに所属できます。 65535 より大きな GID は、ソフトウェアに問題を引き起こす可能性があるので、 65535 以下の GID を使うことを推奨します。 + +ログインクラス:: +ログインクラスはグループの仕組みを拡張したもので、 別々のユーザに対してシステムを調整する時に、 さらなる柔軟性を提供します。ログインクラスの詳細については、 <<users-limiting>> で説明します。 + +パスワードの有効期限:: +デフォルトでは、パスワードに有効期限は設定されていません。 +しかしながら、パスワードの有効期限をユーザごとに設定し、一部またはすべてのユーザに、一定の時間がたったらパスワードを強制的に変更させることができます。 + +アカウント失効時間:: +デフォルトでは、FreeBSD はアカウントを失効させません。 たとえば学校で生徒のアカウントがある場合など、 限られた期間だけのアカウントを作成するなら、 そのアカウントがいつ失効するか man:pw[8] を使って指定できます。 有効期間が経過したら、 そのアカウントのディレクトリやファイルは残っていますが、 システムへのログインはできなくなります。 + +ユーザの氏名:: +FreeBSD ではユーザ名でアカウントを一意に識別しますが、 必ずしもユーザの本名を反映したものではありません。 この情報をアカウントに関連付けることもできます。 この情報は、コメントのように、空白、大文字、および 8 字以上で記載できます。 + +ホームディレクトリ:: +ホームディレクトリは、システム中のディレクトリへのフルパスです。 +これはユーザがログインした時に作業を開始するディレクトリです。 +一般的な慣習は、すべてのユーザのホームディレクトリを `/home/username` か `/usr/home/username` の下に置くことです。 +各ユーザは、個人のファイルやサブディレクトリを、ユーザのホームディレクトリに保存します。 + +ユーザシェル:: +シェルは、 ユーザがシステムと対話するデフォルトの環境を提供します。 いろいろな種類のシェルがあり、 経験を積んだユーザはそれぞれ好みがあり、 それをアカウントの設定に反映できます。 + +[[users-superuser]] +==== スーパーユーザアカウント + +スーパーユーザアカウントは通常 `root` と呼ばれ、 システム管理を行なうために使われ、権限に制限がありません。 そのため、このアカウントはメールのやりとり、システムの調査、 プログラミングといった日常的な作業を行なうために使われるべきものではありません。 + +その理由は、スーパーユーザが通常のユーザアカウントと異なり、 操作にまったく制限を受けないことによります。 そのためスーパーユーザアカウントで操作を間違えると、 システムに重大な影響を与えてしまう恐れがあるのです。 ユーザアカウントでは、 仮に操作を間違えてもシステムを壊してしまうようなことはできないようになっています。 そのため、ユーザアカウントでログインし、 高い権限が必要なコマンドを実行するときだけスーパーユーザになることが推奨されています。 + +スーパーユーザで実行するコマンドはいつでも、 二回、三回と確認してください。 なぜならスペースが多かったり、文字が欠けていたりするだけで、 取り返しのつかないデータの破壊につながる可能性があるからです。 + +スーパーユーザの権限を得るには、さまざまな方法があります。 `root` ユーザとしてログインする方法もありますが、 これはまったくお勧めできません。 + +スーパーユーザの権限を手に入れるには、かわりに man:su[1] を使って下さい。 `-` オプションをつけて実行すると、 実行したユーザに root ユーザの環境が設定されます。 このコマンドは `wheel` グループに入ってるユーザのみが実行でき、他のユーザは実行出来ません。 また、実行時には `root` ユーザのパスワードを必要とします。 + +以下の例では、`make install` を行うときにスーパーユーザの権限が必要なので、 このコマンドを実行する時だけユーザはスーパーユーザになります。 コマンドを実行したら、ユーザは `exit` を実行してスーパーユーザからログアウトし、 通常のユーザアカウントの権限に戻ります。 + +.スーパーユーザ権限でプログラムをインストールする +[example] +==== +[source,shell] +.... +% configure +% make +% su - Password: +# make install +# exit +% .... +==== -それでは `john` のパスワードを入力して kbd:[Enter] を押してください。パスワードは _表示されません_。これについては、当面は 気にする必要はありません。セキュリティのためといえば十分でしょう。 +1 人の管理者が一台のマシン、 もしくは小規模なネットワークを管理する場合には、 man:su[1] のフレームワークはうまく機能するでしょう。 この代わりとなるのは、 package:security/sudo[] package または port です。これはログ機能や、 スーパーユーザの権限で実行できるユーザやコマンドを設定できます。 -パスワードを正確に入力したら、FreeBSD にログインして 利用可能なすべてのコマンドを試せるようになっているはずです。 +[[users-modifying]] +=== アカウント情報の管理 -MOTD、もしくはコマンドプロンプト (`#`, `$` または `%`) に表示されるメッセージを読むようにしましょう。 これは FreeBSD へのログインに成功したときに表示されます。 +FreeBSD は、ユーザアカウントを操作するためにさまざまなコマンドを用意しています。 +もっとも一般的なコマンドが <<users-modifying-utilities>> にまとめられています。 +その後で、各コマンドについて詳しい使用例を示します。 +各ユーティリティの詳細や使用例についてはマニュアルページを参照してください。 -[[consoles-virtual]] -=== 多数のコンソール +[[users-modifying-utilities]] +.ユーザアカウントを管理するためのユーティティ +[cols="25h,~"] +|=== +| コマンド +| 要約 + +|man:adduser[8] +|コマンドラインからユーザを追加するための推奨アプリケーション -一つのコンソールで UNIX(R) コマンドを動かすのは結構なことですが、 FreeBSD は多くのプログラムを一度に動かせます。 コマンドを入力できるコンソールが一つというのは、 FreeBSD のようにいくつものプログラムを同時に動かせる オペレーティングシステムの場合は少しもったいないことです。 ここで、"仮想コンソール" が非常に役に立ちます。 +|man:rmuser[8] +|コマンドラインからユーザを削除するための推奨アプリケーション -FreeBSD は、異なる仮想コンソールを複数 表示するように設定できます。キーボード上である組合せのキーを押せば、 その中の一つから他の仮想コンソールのどれかに切り替えられます。 それぞれのコンソールは、個別の出力チャンネルを持っており、 また FreeBSD はある仮想コンソールから次に切り替えるのに応じて、 キーボード入力とモニター出力を適切につなぎ直します。 +|man:chpass[1] +|ユーザデータベースの情報を変更するための柔軟なツール -FreeBSD は、コンソールを切り替えるために、 特別なキーの組合せを予約しています。FreeBSD では kbd:[Alt+F1], kbd:[Alt+F2] から kbd:[Alt+F8] までを、 別の仮想コンソールに切り替えるのに使えます。 +|man:passwd[1] +|ユーザのパスワードを変更するコマンドラインツール -あるコンソールから他に切り替えるのに応じて、FreeBSD は画面 への出力を保存して戻します。結果として、FreeBSD で動かすコマン ドを入力するのに使える複数の画面とキーボードを "仮想的に" 実現できるのです。 ある仮想コンソールで実行したプログラムは、 そのコンソールが見えなくなっている時も実行を停止しません。 別の仮想コンソールに切り替えても動き続けます。 +|man:pw[8] +|ユーザアカウントのあらゆる箇所を変更する強力で柔軟なツール -[[consoles-ttys]] -=== [.filename]#/etc/ttys# ファイル +|man:bsdconfig[8] +|システムの設定のためのユーティリティ。アカウント管理に対応しています。 +|=== -初期設定では、FreeBSD は 8 つの仮想コンソールを立ち上げます。 この設定はもともと埋め込まれているわけではなく、 インストールしたものが、もっと多いまたは少ない数の仮想コンソールで 起動するように、容易にカスタマイズできます。仮想コンソールの数と 設定は [.filename]#/etc/ttys# ファイルに書かれています。 +[[users-adduser]] +==== ユーザの追加 -FreeBSD の仮想コンソールを設定するには [.filename]#/etc/ttys# ファイルを利用します。 このファイルのコメントアウトされていない (`#` 文字で始まっていない) 行は、一つの端末または仮想コンソールの 設定があります。FreeBSD の初期設定では、 仮想コンソールを 9 つ設定し、そのうち 8 つを有効にしています。 `ttyv` で始まる行がそれです。 +新しいユーザの登録に推奨されるプログラムは man:adduser[8] です。 +ユーザを追加すると、このプログラムは、`/etc/passwd` と `/etc/group` を自動的に更新します。 +また、新規ユーザのホームディレクトリを作成し、`/usr/share/skel` から、デフォルトで使用される設定ファイルをコピーします。 +また、新しく作成されたユーザに対して、ウェルカムメッセージをメールで送信することも可能です。 +このユーティリティは、スーパーユーザ権限で実行する必要があります。 -[.programlisting] +man:adduser[8] は、新しいユーザアカウントを対話的に段階的に作成するユーティリティです。 +<<users-modifying-adduser>> で示されているように、必要な情報を入力するか、括弧内に示されているデフォルトの値を kbd:[Return] を押して承認してください。 +この例では、ユーザは man:su[1] によってスーパユーザ権限を取得することが可能となる `wheel` グループに所属します。 +操作が終了すると、ユーティリティは別のユーザを追加するか、終了するかを尋ねてきます。 + +[[users-modifying-adduser]] +.FreeBSD におけるユーザの追加 +[example] +==== +[source,shell] .... -# name getty type status comments -# -ttyv0 "/usr/libexec/getty Pc" cons25 on secure -# Virtual terminals -ttyv1 "/usr/libexec/getty Pc" cons25 on secure -ttyv2 "/usr/libexec/getty Pc" cons25 on secure -ttyv3 "/usr/libexec/getty Pc" cons25 on secure -ttyv4 "/usr/libexec/getty Pc" cons25 on secure -ttyv5 "/usr/libexec/getty Pc" cons25 on secure -ttyv6 "/usr/libexec/getty Pc" cons25 on secure -ttyv7 "/usr/libexec/getty Pc" cons25 on secure -ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure +# adduser +Username: jru +Full name: J. Random User +Uid (Leave empty for default): +Login group [jru]: +Login group is jru. Invite jru into other groups? []: wheel +Login class [default]: +Shell (sh csh tcsh zsh nologin) [sh]: zsh +Home directory [/home/jru]: +Home directory permissions (Leave empty for default): +Use password-based authentication? [yes]: +Use an empty password? (yes/no) [no]: +Use a random password? (yes/no) [no]: +Enter password: +Enter password again: +Lock out the account after creation? [no]: +Username : jru +Password : **** +Full Name : J. Random User +Uid : 1001 +Class : +Groups : jru wheel +Home : /home/jru +Shell : /usr/local/bin/zsh +Locked : no +OK? (yes/no): yes +adduser: INFO: Successfully added (jru) to the user database. +Add another user? (yes/no): no +Goodbye! .... +==== -このファイルのそれぞれのカラムと仮想コンソールに設定可能な 全オプションの詳しい説明は、man:ttys[5] のマニュアルを 参照してください。 +[NOTE] +==== +入力したパスワードは画面に表示されませんので、 ユーザアカウントを作成する際には、 パスワードを間違えて入力してしまわないように注意してください。 +==== -[[consoles-singleuser]] -=== シングルユーザモードのコンソール +[[users-rmuser]] +==== ユーザの削除 -"シングルユーザモード" とは何かという詳しい説明は、 crossref:boot[boot-singleuser,「シングルユーザモード」] にあります。FreeBSD を シングルユーザモードで動かしている場合は一つしかコンソールが ないということは注意しておくに値するでしょう。仮想コンソールは 利用できません。シングルユーザモードのコンソールの設定は、同じく [.filename]#/etc/ttys# ファイルにあります。 `console` で始まる行を探してください。 +システムから完全にユーザを削除するには、スーパーユーザ権限で man:rmuser[8] を実行してください。 +このコマンドは、次の手順を実行します。 -[.programlisting] +[.procedure] +==== +. 指定されたユーザの man:crontab[1] エントリが存在する場合には削除。 +. 指定されたユーザの man:at[1] ジョブをすべて削除。 +. 指定されたユーザが所有するすべてのプロセスに対して SIGKILL シグナルを送信。 +. ローカルパスワードファイルから、 指定されたユーザのエントリを削除。 +. 指定されたユーザのホームディレクトリを削除 (ディレクトリの所有者が指定されたユーザのものだった場合)。実際のホームディレクトリへのシンボリックリンクの削除も含まれます。 +. `/var/mail` から、指定されたユーザの到着メールファイルを削除。 +. `/tmp`, `/var/tmp`, および `/var/tmp/vi.recover` から、指定されたユーザの所有するファイルを削除。 +. `/etc/group` にある すべてのグループから、指定されたユーザを削除します +(指定されたユーザと同じ名前のグループで、そのユーザが削除されると空のグループとなる場合は、そのグループ自体が削除されます。 +これは man:adduser[8] によってユーザごとに作成される、ユニークなグループに対応するものです)。 +. 指定されたユーザが所有するすべてのメッセージキュー、共通メモリセグメントおよびセマフォを削除 +==== + +スーパユーザアカウントの削除に man:rmuser[8] を利用することはできません。 スーパユーザアカウントの削除はほとんどすべての場合、 大規模なシステムの破壊を意味するからです。 + +デフォルトでは、以下の例のような対話モードが使われます。 + +.`rmuser` による対話的なアカウントの削除 +[example] +==== +[source,shell] .... -# name getty type status comments -# -# If console is marked "insecure", then init will ask for the root password -# when going to single-user mode. -console none unknown off secure +# rmuser jru +Matching password entry: +jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh +Is this the entry you wish to remove? y +Remove user's home directory (/home/jru)? y +Removing user (jru): mailspool home passwd. .... +==== + +[[users-chpass]] +==== ユーザ情報の変更 + +すべてのユーザは、man:chpass[1] を用いてデフォルトシェルやユーザアカウントに関連した個人情報を変更できます。 +スーパユーザ権限に限り、このユーティリティを用いて他のユーザのアカウント情報も変更できます。 + +ユーザ名の他にオプションを指定しないと、 man:chpass[1] はユーザ情報を編集するエディタを表示します。 ユーザがエディタを終了すると、 ユーザデータベースが新しい情報に更新されます。 [NOTE] ==== -`console` 行の上のコメントが示すように、 この行を編集して `secure` を `insecure` に変更できます。そうすると、 FreeBSD がシングルユーザモードで起動した場合にも `root` のパスワードを要求します。 +スーパユーザ権限以外でこのユーティリティを実行した場合は、 エディタを抜けた後にユーザのパスワードを聞かれます。 +==== + +<<users-modifying-chpass-su>> では、スーパーユーザは `chpass jru` と入力し、このユーザに対して変更可能なフィールドが表示されています。 +`jru` がこのコマンドを実行すると、最後の 6 フィールドのみが表示され編集が可能です。 +この場合については、<<users-modifying-chpass-ru>> で示されています。 + +[[users-modifying-chpass-su]] +.スーパユーザによる `chpass` の使用 +[example] +==== +[source,shell] +.... +#Changing user database information for jru. +Login: jru +Password: * +Uid [#]: 1001 +Gid [# or name]: 1001 +Change [month day year]: +Expire [month day year]: +Class: +Home directory: /home/jru +Shell: /usr/local/bin/zsh +Full Name: J. Random User +Office Location: +Office Phone: +Home Phone: +Other information: +.... +==== -_これを `_insecure_` に 変更する場合は十分注意してください。_`root` のパスワードを忘れてしまったら、 シングルユーザモードで起動するのは少しややこしくなります。 できることはできますが、FreeBSD の起動の過程とそれに関わる プログラムにあまり親しんでいない人には少し難しいかも知れません。 +[[users-modifying-chpass-ru]] +.通常のユーザによる `chpass` の使用 +[example] +==== +[source,shell] +.... +#Changing user database information for jru. +Shell: /usr/local/bin/zsh +Full Name: J. Random User +Office Location: +Office Phone: +Home Phone: +Other information: +.... ==== -[[consoles-vidcontrol]] -=== コンソールのビデオモードの変更 +[NOTE] +==== +man:chfn[1] および man:chsh[1] コマンドはいずれも、man:chpass[1] へのリンクです。 +また、man:ypchpass[1], man:ypchfn[1] および man:ypchsh[1] も同様です。 +NIS のサポートは自動的に行なわれますの、 コマンドの先頭に `yp` をつける必要はありません。 +NIS の設定については、ネットワークサーバの章で説明されています。 +==== -FreeBSD のデフォルトのビデオモードは 1024x768 や 1280x1024 など、 グラフィックカードとディスプレイが対応しているサイズに調整されます。 別のビデオモードを使うには、以下の 2 つのオプションを有効にしてカーネルを再コンパイルする必要があります。 +[[users-passwd]] +==== ユーザのパスワードの変更 -[.programlisting] +いかなるユーザも man:passwd[1] を使って簡単に自身のパスワードを変更できます。 +誤って、または不正なパスワードの変更を避けるため、新しいパスワードを設定する前に、もとのパスワードの入力が求められます。 + +.自分のパスワードの変更 +[example] +==== +[source,shell] .... -options VESA -options SC_PIXEL_MODE +% passwd +Changing local password for jru. +Old password: +New password: +Retype new password: +passwd: updating the database... +passwd: done .... +==== -1 度このオプションを有効にしてカーネルを再コンパイルしたら、 あなたのハードウェアがどのビデオモードに対応しているか、 man:vidcontrol[1] を用いて知ることができます。 以下を実行すると、どのビデオモードに対応しているかを知ることができます。 +スーパーユーザは、man:passwd[1] をユーザ名を指定して実行することにより、いかなるユーザのパスワードを変更できます。 +スーパーユーザの権限でこのユーティリティを実行する際には、もとのパスワードを入力する必要はありません。 +そのため、ユーザが元のパスワードを忘れてしまっても、パスワードを変更できます。 +.スーパーユーザ権限での他のユーザのパスワード変更 +[example] +==== [source,shell] .... -# vidcontrol -i mode +# passwd jru +Changing local password for jru. +New password: +Retype new password: +passwd: updating the database... +passwd: done +.... +==== + +[NOTE] +==== +man:chpass[1] 同様、man:yppasswd[1] は、 man:passwd[1] へのリンクになっていますので、 NIS はどちらのコマンドでも動作します。 +==== + +[[users-pw]] +==== システムユーザおよびグループの作成、削除、変更および表示 + +man:pw[8] は、ユーザやグループの作成、削除、変更および表示を行なうコマンドラインのユーティリティです。 +これは、システムユーザファイルやシステムグループファイルのフロントエンドとして働きます。 +man:pw[8] はとても強力な一連のコマンドラインオプションを有しており、シェルスクリプトで使うのに向いていますが、新しいユーザは、この章で紹介されている他のコマンドに比べて難しいと感じるかもしれません。 + +[[users-groups]] +=== グループの管理 + +グループとは、ユーザを羅列したものです。 グループは、グループ名と GID で識別されます。 FreeBSD では、 あるプロセスが何かするのを許可するかどうかをカーネルが判断する際に、 プロセスの UID とそのユーザが所属するグループの一覧を利用します。 ほとんどの場合、ユーザもしくはプロセスの GID は一覧の最初のグループを指しています。 + +グループ名から GID への写像は `/etc/group` にあります。 +これは、コロンで区切られた 4 項目からなるテキストファイルです。 +1 番目の項目はグループ名、2 番目は暗号化されたパスワード、3 番目が GID、4 番目がカンマで区切られたメンバの一覧です。 +文法についての完全な説明は、man:group[5] をご覧ください。 + +スーパーユーザは、`/etc/group` をテキストエディタで編集できます。 +ただし、よくある間違いを見つけてくれる man:vigr[8] を用いてグループファイルを編集することが好ましいです。 +もしくは、man:pw[8] を使ってグループの追加や編集をできます。 +たとえば、`teamtwo` というグループを追加して、その存在を確認するには、次のように使います。 + +[WARNING] +==== +operator グループを使う時には、意図しないスーパーユーザへのアクセス権を与える可能性があるため注意が必要です。 +シャットダウン、リブートおよびこのグループが所有する `/dev` のすべてにアクセスできるといったことが可能になってしまいます。 +==== + +.man:pw[8] によるグループの追加 +[example] +==== +[source,shell] .... +# pw groupadd teamtwo +# pw groupshow teamtwo +teamtwo:*:1100: +.... +==== -このコマンドの出力結果があなたのハードウェアが対応しているビデオモードです。 その後 `root` ユーザで man:vidcontrol[1] を実行することで、 新しくどのビデオモードを使うかを選択できます。 +この例では、`1100` という番号は、 `teamtwo` の GID です。 この時点では、`teamtwo` にメンバはいません。 以下のコマンドは、 `jru` を `teamtwo` のメンバに追加します。 +.man:pw[8] により新しいグループにメンバを追加する +[example] +==== [source,shell] .... -# vidcontrol MODE_279 +# pw groupmod teamtwo -M jru +# pw groupshow teamtwo +teamtwo:*:1100:jru +.... +==== + +`-M` の引数は、カンマで区切られた新しい (空の) グループに追加するもしくは存在するグループのメンバを置き換えるユーザの一覧です。 +ユーザにとっては、このグループのメンバーシップはパスワードファイルに記載されているプライマリのグループとは異なります。 +man:pw[8] の `groupshow` コマンドを使った時は、そのユーザはグループの一員として表示されませんが、man:id[1] などのツールを使って情報を問い合わせれば、その情報を引き出せます。 +ユーザをグループに追加をする際に、man:pw[8] は `/etc/group` しか扱わず、 `/etc/passwd` から追加のデータを読んだりはしません。 + +.man:pw[8] によるグループへのユーザ追加 +[example] +==== +[source,shell] .... +# pw groupmod teamtwo -m db +# pw groupshow teamtwo +teamtwo:*:1100:jru,db +.... +==== -このビデオモードで良いと思ったら、起動時に自動的に設定されるように [.filename]#/etc/rc.conf# ファイルに以下のように設定してください。 +この例では、`-m` の引数は、 カンマで区切られたグループに追加するユーザの一覧です。 +前の例と異なり、これらのユーザはグループに追加され、既存のグループのユーザを置き換えることはありません。 -[.programlisting] +.グループに所属しているユーザを調べるための man:id[1] の使い方 +[example] +==== +[source,shell] .... -allscreens_flags="MODE_279" +% id jru +uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) .... +==== + +この例では、`jru` は `jru` グループと `teamtwo` グループのメンバです。 + +このコマンドや `/etc/group` のフォーマットの詳細については、 man:pw[8] および man:group[5] をご覧ください。 [[permissions]] == 許可属性 -FreeBSD は BSD UNIX(R) の直系の子孫であり、 いくつかの鍵となる UNIX(R) 思想にもとづいています。 まず最も際だった特徴として最初に言えるのは、FreeBSD がマルチユーザのオペレーティングシステムだということです。 FreeBSD は同時に働いている複数のユーザすべてを、 完全に分離したタスク上で処理する能力を持っています。 また FreeBSD は、ハードウェアデバイス、周辺装置、メモリ、 CPU 時間等への要求を、各ユーザが平等に利用できるように適切に共有し、 管理する役割を担っています。 +FreeBSD では、すべてのファイルおよびディレクトリは一組の許可属性を持っています。 +これらの許可属性は、ユーティリティを使って確認したり変更できます。 +許可属性がどのように機能するかを知ることで、ユーザが必要とするファイルにアクセスできるかどうか、オペレーティングシステムが使用しているファイルや他のユーザが所有するファイルにアクセスできないことを理解できるようになります。 -システムがマルチユーザをサポートしているため、 システムが管理する資源はすべて、 誰がその資源を読み・書き・実行できるかを支配する、 一組の許可属性を持っています。 これらの許可属性は 3 つの部分からなる 3 桁の 8 進数の形で格納されています。 それはそのファイルの所有者 (owner) に対するもの、 そのファイルが所属するグループ (group) に対するもの、 その他 (others) に対するものの 3 つです。 これを数字を使って表現すると、次のようになります。 +この節では、FreeBSD で使用される伝統的な UNIX(R) の許可属性について説明します。 +より細かいファイルシステムのアクセス制御に関しては、crossref:security[fs-acl,アクセス制御リスト] をご覧ください。 -[.informaltable] +UNIX(R) では、基本の許可属性は 3 つのアクセスタイプ (読み・書き・実行) を使って割り当てられます。 +これらのアクセスタイプを使って、ファイルの所有者 (owner)、グループ (group) その他 (others) に対するファイルアクセスを設定します。 +読み、書き、実行に関する許可属性は、それぞれ `r`, `w`, および `x` 文字で表されます。 +これらの許可属性を表す際に、オンかオフ (`0`) による 2 進数表記も使われます。 +数字で表現する場合には、 `r` は `4`、`w` は `2` そして `x` は `1` の値を持つよう、`rwx` の順番で表されます。 + +以下は、許可属性を表す際に用いられる数字およびアルファベットをまとめた表です。 +"ディレクトリの表示" カラムでは、`-` は許可属性がオフに設定されていることを表します。 + +.UNIX(R) 許可属性 [cols="1,1,1", frame="none", options="header"] |=== | 値 @@ -269,7 +701,8 @@ FreeBSD は BSD UNIX(R) の直系の子孫であり、 いくつかの鍵とな |`rwx` |=== -man:ls[1] に対してコマンドライン引数 `-l` を使うと、 詳細なディレクトリリストを見ることができ、 ファイルの所有者、グループ、その他への許可属性を示す欄があるのがわかります。 例えば、`ls -l` を実行して、 適当なディレクトリを表示させると以下のようになります。 +コマンドライン引数 `-l` とともに man:ls[1] を使うと、詳細なディレクトリリストを見ることができ、ファイルの所有者、グループ、その他への許可属性を示す欄があるのがわかります。 +例えば、`ls -l` を実行して、 適当なディレクトリを表示させると以下のようになります。 [source,shell] .... @@ -278,29 +711,40 @@ total 530 -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt -... -.... - -以下に示すのは、 `ls -l` の最初の行を抜き出したものです。 - -[source,shell] -.... --rw-r--r-- .... -最初の (一番左の) 文字は、それが 普通のファイルなのか、ディレクトリなのか、 キャラクタ型のデバイス特殊ファイルなのか、 ソケットなのか、 その他の特殊な疑似ファイルデバイスなのかといった種類を示す特別な文字です。 この場合、`-` という文字は、 普通のファイルであることを示します。 この例でその次に来る `rw-` と書かれた 3 文字は、 そのファイルの所有者に許可を与えるものです。 その次の `r--` の 3 文字は、 そのファイルが所属しているグループに許可を与えます。 最後の `r--` の 3 文字は、 システムに存在するその他のユーザに許可を与えます。 "-" は許可が与えられていないことを示します。 このファイルの例では、ファイルの所有者はこのファイルを読み書きでき、 ファイルの所属しているグループに属するユーザはファイルを読むことだけでき、 そのどちらでもないユーザは、 このファイルを読むだけできるように許可属性が与えられています。 上の表によれば、このファイルに与えられた許可属性は `644` となります。 ここで各数字は、このファイルの許可属性の 3 つの部分を表しています。 +`myfile` が含まれている行の一番目の列の最初の `(一番左の)` 文字は、そのファイルが普通のファイルなのか、ディレクトリなのか、キャラクタ型のデバイス特殊ファイルなのか、ソケットなのか、その他の特殊な疑似ファイルデバイスなのかといった種類を示す特別な文字です。 +この例において、`-` という文字は、普通のファイルであることを示します。 +その次に来る `rw-` と書かれた 3 文字は、そのファイルの所有者に許可を与えるものです。 +その次の `r--` の 3 文字は、そのファイルが所属しているグループに許可を与えます。 +最後の `r--` の 3 文字は、 システムに存在するその他のユーザに許可を与えます。 +"-" は許可が与えられていないことを示します。 +この例では、ファイルの所有者はこのファイルを読み書きでき、ファイルの所属しているグループに属するユーザはファイルを読むことだけでき、そのどちらでもないユーザは、 このファイルを読むだけできるように許可属性が与えられています。 +上の表によれば、このファイルに与えられた許可属性は `644` となります。 +ここで各数字は、このファイルの許可属性の 3 つの部分を表しています。 -ファイルについてはここまでの説明で十分です。 しかし、 デバイスの場合の許可属性はどのようにコントロールされているのでしょうか? FreeBSD は、大部分のハードウェアをファイルとして取り扱います。 そのため、プログラムからは普通のファイルとまったく同じようにオープンし、 データの読み書きができるようになっています。 これらのデバイス特殊ファイルは [.filename]#/dev# ディレクトリに収められています。 +デバイスの場合の許可属性はどのようにコントロールされているのでしょうか? +FreeBSD は、大部分のハードウェアをファイルとして取り扱います。 +そのため、プログラムからは普通のファイルとまったく同じようにオープンし、 データの読み書きができるようになっています。 +これらのデバイス特殊ファイルは `/dev/` に収められています。 -ディレクトリもまた、ファイルと同様に扱われます。 それは読み込み/書き込み/実行の許可属性を持ちます。 ディレクトリの実行ビットはファイルのそれとは少し違った意味を持ちます。 ディレクトリが実行可能になっているとき、 そのディレクトリに移動することができます。 つまり、そのディレクトリに "cd" (change directory) することが可能です。 また、実行可能属性がついているディレクトリでは、 名前が分かっているファイルにアクセスすることもできます (もちろんそのファイル自体の許可属性によります)。 +ディレクトリもまた、ファイルと同様に扱われます。 +それは読み込み/書き込み/実行の許可属性を持ちます。 +ディレクトリの実行ビットはファイルのそれとは少し違った意味を持ちます。 +ディレクトリが実行可能になっているとき、man:cd[1] を使ってそのディレクトリに移動することができます。 +これは、そのディレクトリにあるファイルにアクセスできることを意味しています (ファイル自体の許可属性によります)。 -特に、ディレクトリの中の一覧を表示するには、 そのディレクトリに読み込み属性が設定されていなければなりません。 一方、名前が分かっているファイルを削除するには、 そのファイルが含まれているディレクトリに 書き込み属性_と_実行属性 の両方が必要です。 +ディレクトリの中の一覧を表示するには、そのディレクトリに読み込み属性が設定されていなければなりません。 +名前が分かっているファイルを削除するには、そのファイルが含まれているディレクトリに 書き込み属性 _と_ 実行属性 の両方が必要です。 -この他にも許可属性ビットはありますが、いずれも setuid バイナリや sticky ディレクトリなどといった特殊な状況で使われます。 ファイルの許可属性そのものについて、 また、それらの設定のしかたに関する詳しい情報は、 man:chmod[1] マニュアルページを参照してください。 +この他にも許可属性ビットはありますが、いずれも setuid バイナリや sticky ディレクトリなどといった特殊な状況で使われます。 +ファイルの許可属性そのものについて、また、それらの設定方法に関する詳しい情報は、 man:chmod[1] マニュアルページを参照してください。 === シンボリック表記 -シンボリック表記と呼ばれる許可属性を表す方法では、 ファイルやディレクトリの許可属性を、 8 進数ではなく記号を用いて設定します。 シンボリック表記では、(who), (action), (permissions) という書式が用いられます。 利用できる値は以下の通りです。 +シンボリック表記と呼ばれる許可属性を表す方法では、ファイルやディレクトリの許可属性を、8 進数ではなく記号を用いて設定します。 +シンボリック表記による許可属性を表す方法では、(who), (action), (permissions) という書式が用いられます。 +利用できる値は以下の通りです。 [.informaltable] [cols="1,1,1", frame="none", options="header"] @@ -358,14 +802,16 @@ total 530 |UID または GID を設定する |=== -これらの値は、これまでと同様に man:chmod[1] コマンドで用いますが、文字で指定します。 たとえば、_FILE_ に対して自分以外のユーザからアクセスを一切受け付けたくない、 というときには以下のコマンドを実行してください。 +これらの値は、これまでと同様に man:chmod[1] で用いますが、数字ではなく文字で指定します。 +たとえば、_FILE_ に対して _FILE_ のグループメンバーおよび自分以外のすべてのユーザからアクセスを一切受け付けたくない、というときには以下のコマンドを実行してください。 [source,shell] .... % chmod go= FILE .... -カンマ区切りで設定することで、 ファイルの属性を一度に 2 つ以上変更できます。 以下の例では、_FILE_ に対して自分以外のユーザから書き込みの権限を取り上げ、 かわりにすべてのユーザが _FILE_ を実行できるようにします。 +カンマ区切りで設定することで、ファイルの属性を一度に 2 つ以上変更できます。 +以下の例では、_FILE_ に対して自分以外のユーザから書き込みの権限を取り上げ、かわりにすべてのユーザが _FILE_ を実行できるようにします。 [source,shell] .... @@ -374,234 +820,422 @@ total 530 === FreeBSD のファイルフラグ -先ほど説明したファイルの許可属性に加え、 FreeBSD では "ファイルフラグ" を使えます。 これはファイルにセキュリティや管理上の属性を追加するものですが、 ディレクトリには追加しません。 +ファイルの許可属性に加え、FreeBSD では "ファイルフラグ" を使えます。 +これはファイルにセキュリティや管理上の属性を追加するものですが、ディレクトリには追加しません。 +ファイルフラグにより、`root` ユーザでさえ誤ってファイルを消去、変更してしまうことを防ぐことができます。 -これらのファイルフラグはファイルに管理上の属性を追加し、 `root` ユーザでさえ誤ってファイルを消去、変更してしまうことを防ぎます。 - -ファイルフラグは、man:chflags[1] を使って、簡単なインタフェースで設定できます。 例えば、[.filename]#file1# というファイルにシステムレベルで消去不可のフラグを設定するには、 以下のコマンドを実行してください。 +ファイルフラグは、man:chflags[1] を使って、簡単なインタフェースで設定できます。 +例えば、`file1` というファイルにシステムレベルで消去不可のフラグを設定するには、以下のコマンドを実行してください。 [source,shell] .... # chflags sunlink file1 .... -また、消去不可のフラグを削除するには、 以下のように先ほどのコマンドの `sunlink` の前に "no" をつけるだけです。 +消去不可のフラグを削除するには、以下のように `sunlink` の前に "no" をつけて実行してください。 [source,shell] .... # chflags nosunlink file1 .... -ファイルにどのフラグが設定されているのかを見るには、man:ls[1] コマンドを `-lo` オプションと一緒に使ってください。 +ファイルに設定されているフラグを確認するには、`-lo` と一緒に man:ls[1] を実行してください。 [source,shell] .... # ls -lo file1 .... -出力は以下のようになります。 - [.programlisting] .... -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1 .... -いくつかのフラグの追加、削除は `root` ユーザしかできません。 他のフラグは、ファイルの所有者が変更できます。 システム管理者は man:chflags[1] と man:chflags[2] から、 より詳細な情報を得ることをおすすめします。 +いくつかのファイルフラグの追加、削除は `root` ユーザしかできません。 +他のフラグは、ファイルの所有者が変更できます。 +man:chflags[1] と man:chflags[2] から、より詳細な情報を得ることをおすすめします。 + +=== setuid, setgid および sticky 許可属性 + +これまでに説明した許可属性のほかに、 +すべての管理者が知っておくべき特別な設定が 3 つあります。 +それは `setuid`, `setgid` および `sticky` 許可属性です。 + +これらの設定は、通常のユーザには許可されていない機能を提供するので、UNIX(R) の操作において重要となることがあります。 +これらの許可属性を理解するためには、実ユーザ ID と実効ユーザ ID の違いに注意してください。 + +実ユーザ ID は、所有したりプロセスを開始する UID です。 +実効 UID は、プロセスを実行するユーザ ID です。 +たとえば、ユーザがパスワードを変更するときに利用する man:passwd[1] は、実ユーザ ID で起動します。 +しかしながら、パスワードデータベースのアップデートの際は、実効 ID の `root` ユーザの権限で実行されます。 +この仕組みにより、`Permission Denied` エラーが表示されることなく、ユーザはパスワードを変更できます。 + +setuid 許可属性は、以下の例で示されているように、ユーザに対して `s` の許可属性をつけることで設定できます。 + +[source,shell] +.... +# chmod u+s suidexample.sh +.... + +setuid 許可属性は、以下の例で示されているように、指定する許可属性に数字の 4 をつけることでも設定できます。 + +[source,shell] +.... +# chmod 4755 suidexample.sh +.... + +これで `suidexample.sh` の許可属性は以下のように設定されます。 + +[.programlisting] +.... +-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh +.... + +`s` は、許可属性のファイル所有者の実行可能ビットに置き換わって反映されます。 +この設定により、man:passwd[1] といったユーティリティが権限を昇格することができます。 + +[NOTE] +==== +`nosuid` man:mount[8] オプションを使うと、このようなバイナリがユーザへの警告なしに権限を昇格できないように設定できます。 +ただし `nosuid` ラッパにより回避できるため、このオプションを完全には信頼できません。 +==== + +リアルタイムに確認するために、2 つのターミナルを開いてください。 +1 つのターミナル上で、通常のユーザ権限で `passwd` と入力してください。 +パスワードの入力を待つ間に、もう一つのターミナル上で、プロセステーブルおよび man:passwd[1] のユーザ情報を確認してください。 + +ターミナル A: + +[source,shell] +.... +Changing local password for trhodes +Old Password: +.... + +ターミナル B: + +[source,shell] +.... +# ps aux | grep passwd +.... + +[source,shell] +.... +trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd +root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd +.... + +通常のユーザ権限で man:passwd[1] を実行したにもかかわらず、実効 UID の `root` が使われています。 + +`setgid` 許可属性は `setuid` 許可属性と同様の機能を提供しますが、この許可属性はグループの設定を変更します。 +この設定を行った上でアプリケーションまたはユーティリティを実行すると、プロセスを開始するユーザではなく、ファイルを所有するグループに対してこの許可属性を与えます。 + +記号を用いてファイルに `setgid` 許可属性を設定するには、man:chmod[1] で設定するグループに `s` の許可属性をつけて実行してください。 + +[source,shell] +.... +# chmod g+s sgidexample.sh +.... + +または、man:chmod[1] で設定する許可属性の先頭に 2 をつけて実行してください。 + +[source,shell] +.... +# chmod 2755 sgidexample.sh +.... + +以下に示されるように、`s` がグループの許可属性に指定されています。 + +[source,shell] +.... +-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh +.... + +[NOTE] +==== +上記の例において、対象としているシェルスクリプトが実行可能なファイルであっても、シェルスクリプトは man:setuid[2] システムコールにアクセスできないため、実効ユーザ ID では実行されません。 + +==== + +`setuid` および `setgid` 許可属性ビットは、権限の昇格を許可するので、システムのセキュリティレベルを下げます。 +一方 3 番目の特殊な許可属性 `sticky bit` は、システムのセキュリティを強化します。 + +ディレクトリに `sticky bit` を設定すると、ファイルの所有者のみがファイルを削除できるようになります。 +`/tmp` といった共有のディレクトリにおいて、ファイルの所有者以外のユーザがファイルを削除できなくなるので有用です。 +この許可属性を有効にするには、ファイルに対して `t` モードを追加してください。 + +[source,shell] +.... +# chmod +t /tmp +.... + +または、許可属性に 1 をつけて設定してください。 + +[source,shell] +.... +# chmod 1777 /tmp +.... + +`sticky bit` が設定されていると、許可属性の最後に `t` が表示されます。 + +[source,shell] +.... +# ls -al / | grep tmp +.... + +[source,shell] +.... +drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp +.... [[dirstructure]] == ディレクトリ構造 -FreeBSD のディレクトリ構造は、 システム全体を理解するに当たって重要です。 把握しておくべき最も重要なものは、"/" ディレクトリです。 このディレクトリは起動時に一番最初にマウントされ、 オペレーティングシステムをマルチユーザで動作させるために 必要な基本システムが含まれています。 また、ルートディレクトリには、 マルチユーザへの移行中に他のファイルシステムをマウントするためのマウントポイントも含まれます。 +FreeBSD のディレクトリ構造は、システム全体を理解するに当たって重要です。 +最も重要なディレクトリは、ルートまたは "/" です。 +このディレクトリは起動時に一番最初にマウントされ、オペレーティングシステムをマルチユーザで動作させるために必要なベースシステムが含まれています。 +また、ルートディレクトリには、マルチユーザへの移行中に他のファイルシステムをマウントするためのマウントポイントも含まれます。 -マウントポイントとは、 追加のファイルシステムと接続するためのディレクトリのことです (普通はルートファイルシステムにあります) 。 より詳細な説明は <<disk-organization>> の節にあります。 標準的なマウントポイントには [.filename]#/usr#, [.filename]#/var#, [.filename]#/tmp#, [.filename]#/mnt#, [.filename]#/cdrom# があります。 通常これらのディレクトリについては、 [.filename]#/etc/fstab# というファイル中のエントリが参照されます。 [.filename]#/etc/fstab# はさまざまなファイルシステムとマウントポイントの表であり、 システムが参照します。 [.filename]#/etc/fstab# に書かれたファイルシステムは `noauto` オプションが指定されていなければ、 起動時に man:rc[8] スクリプトによって自動的にマウントされます。 詳細は <<disks-fstab>> をご覧ください。 +マウントポイントとは、追加するファイルシステムを接続する先の親のファイルシステム (普通はルートファイルシステム) のディレクトリのことです。 +より詳細な説明は <<disk-organization>> の節にあります。 +標準的なマウントポイントには `/usr/`, `/var/`, `/tmp/`, `/mnt/` および `/cdrom/` があります。 +通常これらのディレクトリについては、`/etc/fstab` というファイル中のエントリが参照されます。 +このファイルは、さまざまなファイルシステムとマウントポイントの表であり、システムが参照します。 +`/etc/fstab` に書かれたファイルシステムは `noauto` オプションが指定されていなければ、起動時に man:rc[8] スクリプトによって自動的にマウントされます。 +詳細は <<disks-fstab>> の節をご覧ください。 -ファイルシステム構造を網羅した説明は man:hier[7] に書かれています。 ここでは、もっともよく使われるディレクトリについて簡単に 見るだけで十分でしょう。 +ファイルシステム構造を網羅した説明は man:hier[7] に書かれています。 +以下の表は、もっともよく使われるディレクトリの簡単な概要です。 -[.informaltable] -[cols="1,1", frame="none", options="header"] +[cols="25h,~"] |=== | ディレクトリ | 説明 -|[.filename]#/# +|`/` |ファイルシステムのルートディレクトリ -|[.filename]#/bin/# +|`/bin/` |シングルユーザ環境とマルチユーザ環境の両方で重要な ユーザユーティリティ -|[.filename]#/boot/# +|`/boot/` |オペレーティングシステムの起動時に使われるプログラムと設定ファイル -|[.filename]#/boot/defaults/# +|`/boot/defaults/` |デフォルトの起動設定ファイル; man:loader.conf[5] 参照 -|[.filename]#/dev/# -|デバイスノード; man:intro[4] 参照 +|`/dev/` +|man:devfs[4] により管理されるデバイスファイル -|[.filename]#/etc/# +|`/etc/` |システム設定ファイルとスクリプト -|[.filename]#/etc/defaults/# -|デフォルトのシステム設定ファイル; man:rc[8] 参照 +|`/etc/defaults/` +|デフォルトのシステム設定ファイル; 詳細については man:rc[8] 参照 + +|`/etc/periodic/` +|man:cron[8] 経由で毎日・毎週・毎月実行されるスクリプト; 詳細については man:periodic[8] 参照 -|[.filename]#/etc/mail/# -|man:sendmail[8] のようなメール転送エージェントの設定ファイル +|`/lib/` +|`/bin` および `/sbin` にあるバイナリで必要とされる重要なシステムライブラリ -|[.filename]#/etc/namedb/# -|`named` 設定ファイル; man:named[8] 参照 +|`/libexec/` +|重要なシステムファイル -|[.filename]#/etc/periodic/# -|man:cron[8] 経由で毎日・毎週・毎月実行されるスクリプト; man:periodic[8] 参照 +|`/media/` +|CD, USB ドライブおよびフロッピーディスクなどのリムーバブルメディアのマウントポイントとして使用されるサブディレクトリを含むディレクトリ -|[.filename]#/etc/ppp/# -|`ppp` 設定ファイル; man:ppp[8] 参照 +|`/mnt/` +|システム管理者が一時的なマウントポイントとしてよく使う空のディレクトリ -|[.filename]#/mnt/# -|システム管理者が一時的なマウントポイントとしてよく使う 空のディレクトリ +|`/net/` +|自動マウント NFS 共有。man:auto_master[5] を参照 -|[.filename]#/proc/# -|プロセスファイルシステム; man:procfs[5] と man:mount_procfs[8] 参照 +|`/proc/` +|プロセスファイルシステム; 詳細については man:procfs[5] と man:mount_procfs[8] 参照 -|[.filename]#/rescue/# -|緊急時のために静的にリンクされているプログラム; 詳しくは man:rescue[8] 参照 +|`/rescue/` +|man:rescue[8] で説明されている緊急時のために静的にリンクされているプログラム -|[.filename]#/root/# +|`/root/` |`root` アカウントのホームディレクトリ -|[.filename]#/sbin/# -|シングルユーザ環境とマルチユーザ環境の両方で重要な システムプログラムと管理ユーティリティ +|`/sbin/` +|シングルユーザ環境とマルチユーザ環境の両方で重要なシステムプログラムと管理ユーティリティ -|[.filename]#/tmp/# -|一時的なファイル。 通常、[.filename]#/tmp# の内容はシステムの再起動で失われます。 メモリファイルシステムはよく [.filename]#/tmp# にマウントされます。 これは man:rc.conf[5] の tmpmfs 関係の変数を使うか、 [.filename]#/etc/fstab# に設定項目を記入することで自動化できます。 詳しくは man:mdmfs[8] を参照して下さい。 +|`/tmp/` +|システムの再起動では通常保存 _されない_ 一時的なファイル。 +メモリファイルシステムはよく `/tmp` にマウントされます。 +これは man:rc.conf[5] の tmpmfs 関係の変数を使うか、`/etc/fstab` に設定項目を記入することで自動化できます。 +詳しくは man:mdmfs[8] を参照して下さい。 -|[.filename]#/usr/# +|`/usr/` |大部分のユーザユーティリティとアプリケーション -|[.filename]#/usr/bin/# +|`/usr/bin/` |よく使うユーティリティとプログラミングツールとアプリケーション -|[.filename]#/usr/include/# +|`/usr/include/` |C の標準ヘッダファイル -|[.filename]#/usr/lib/# +|`/usr/lib/` |ライブラリ -|[.filename]#/usr/libdata/# +|`/usr/libdata/` |いろいろなユーティリティのデータファイル -|[.filename]#/usr/libexec/# -|システムデーモンとシステムユーティリティ (他のプログラムから実行される) +|`/usr/libexec/` +|他のプログラムから実行されるシステムデーモンとシステムユーティリティ -|[.filename]#/usr/local/# -|ローカルのプログラムやライブラリなど。 FreeBSD ports 構成のデフォルトインストール先としても使われます。 [.filename]#/usr/local# 内では、 man:hier[7] に書かれている [.filename]#/usr# のための一般構造が使われます。 例外は man ディレクトリで、 [.filename]#/usr/local/share# の下ではなく [.filename]#/usr/local# の下に直接置かれ、 ports 関係文書は [.filename]#share/doc/port# にあります。 +|`/usr/local/` +|ローカルのプログラムやライブラリなど。 +FreeBSD ports フレームワークのデフォルトインストール先としても使われます。 +`/usr/local` 内では、 man:hier[7] に書かれている `/usr` のための一般構造が使われます。 +例外は man ディレクトリで、`/usr/local/share` の下ではなく `/usr/local` の下に直接置かれ、ports 関係文書は `share/doc/port` に置かれます。 -|[.filename]#/usr/obj/# -|[.filename]#/usr/src# ツリーのビルドで作られる アーキテクチャ依存のターゲットツリー +|`/usr/ports/` +|FreeBSD Ports Collection (オプション)。 -|[.filename]#/usr/ports# -|FreeBSD Ports Collection (インストールしなくてもよい)。 +|`/usr/sbin/` +|ユーザにより実行されるシステムデーモンおよびシステムユーティリティ -|[.filename]#/usr/sbin/# -|(ユーザが実行する) システムデーモンとシステムユーティリティ - -|[.filename]#/usr/shared/# +|`/usr/share/` |アーキテクチャに依存しないファイル -|[.filename]#/usr/src/# -|BSD のソースファイルまたはローカルのソースファイル、 あるいは両方 - -|[.filename]#/usr/X11R6/# -|X11R6 のプログラム、ライブラリなど (インストールしなくてもよい) +|`/usr/src/` +|BSD のソースファイルまたはローカルのソースファイル、あるいは両方 -|[.filename]#/var/# -|ログ・一時的なファイル・スプールファイルなどいろいろな用途。 メモリファイルシステムは時々 [.filename]#/var# にマウントされます。 これは man:rc.conf[5] の varmfs 関係の変数を使うか、 [.filename]#/etc/fstab# に設定項目を記入することで自動化できます。 詳しくは man:mdmfs[8] を参照して下さい。 +|`/var/` +|さまざまな用途のログ・一時的なファイル・スプールファイル。 -|[.filename]#/var/log/# +|`/var/log/` |いろいろなシステムログファイル -|[.filename]#/var/mail/# -|ユーザのメールボックスファイル - -|[.filename]#/var/spool/# -|プリンタとメールシステムのスプールディレクトリなどなど - -|[.filename]#/var/tmp/# -|一時的なファイル。 [.filename]#/var# がメモリファイルシステムでなければ、 ここにあるファイルはシステムが再起動しても失われません。 - -|[.filename]#/var/yp# -|NIS のマップ +|`/var/tmp/` +|一時的なファイル。通常の設定では、ここにあるファイルはシステムが再起動しても失われません。 |=== [[disk-organization]] == ディスク構成 -ファイルを見つけるために FreeBSD が使用する構成の一番小さな単位はファイル名です。 ファイル名は、大文字と小文字を区別します。 このことは [.filename]#readme.txt# および [.filename]#README.TXT# が異なる二つのファイルであることを意味します。 FreeBSD はそのファイルがプログラム、または文書、 あるいはその他の形式かどうかを決定するために拡張子を使用しません。 - -ファイルはディレクトリ内に格納されます。 ディレクトリはファイルを一つも含んでいないかもしれせんし、 または数百のファイルを含んでいるかもしれません。 ディレクトリはまた別のディレクトリを含むことができます。 つまり、ディレクトリの階層構造を構築することができます。 このことにより、データ構造がはるかに簡単になります。 +ファイルを見つけるために FreeBSD が使用する構成の一番小さな単位はファイル名です。 +ファイル名は、大文字と小文字を区別します。 +このことは `readme.txt` および `README.TXT` が異なる二つのファイルであることを意味します。 +FreeBSD はそのファイルがプログラム、または文書、あるいはその他の形式かどうかを決定するために拡張子を使用しません。 -ファイルおよびディレクトリは、 必要な他のディレクトリ名とスラッシュ (`/`) を後に続けて ファイル名またはディレクトリ名を与えることによって参照されます。 [.filename]#foo# ディレクトリがあって、その中に [.filename]#bar# ディレクトリがあるとします。 そして、その中に [.filename]#readme.txt# があるとすると、 ファイルへのフルネーム、または_パス_は [.filename]#foo/bar/readme.txt# となります。 +ファイルはディレクトリ内に格納されます。 +ディレクトリはファイルを一つも含んでいないかもしれせんし、または数百のファイルを含んでいるかもしれません。 +ディレクトリはまた別のディレクトリを含むことができるので、 +データを体系づけるディレクトリの階層構造を構築できます。 -ディレクトリおよびファイルはファイルシステム内に格納されます。 どのファイルシステムは、そのファイルシステムのための _ルートディレクトリ_ とよばれる、 まさに頂点の位置にちょうど一つのディレクトリを含んでいます。 このルートディレクトリは他のディレクトリを含むことができます。 +ファイルおよびディレクトリは、必要な他のディレクトリ名とスラッシュ (`/`) を後に続けてファイル名またはディレクトリ名を与えることによって参照されます。 +たとえば、`foo` ディレクトリがあって、その中に `bar` ディレクトリがあるとします。 +そして、その中に `readme.txt` があるとすると、ファイルへのフルネーム、または _パス_ は `foo/bar/readme.txt` となります。 +ファイルとディレクトリ名を分けるために `\` を使う Windows(R) とは違うことに注意してください。 +FreeBSD は、パスの中にドライブレターまたは他のドライブ名を使いません。 +たとえば、FreeBSD では `c:\foo\bar\readme.txt` とは書きません。 -これまでのところ、これはあなたの使ったことのある他の OS とおそらく似ているかもしれません。少し違いがあります。 たとえば、MS-DOS(R) ではファイル名とディレクトリ名を分けるのに `\` を使います。 一方、Mac OS(R) では `:` を使います。 +[[disks-file-systems]] +=== ファイルシステム -FreeBSD はパス内にドライブレターまたは他のドライブ名を使いません。 あなたは FreeBSD で [.filename]#c:/foo/bar/readme.txt# とは書かないでしょう。 +ディレクトリおよびファイルはファイルシステム内に格納されます。 +どのファイルシステムも、そのファイルシステムのための _ルートディレクトリ_ とよばれる、まさに頂点の位置にちょうど一つのディレクトリを含んでいます。 +このルートディレクトリは他のディレクトリを含むことができます。 +一つのファイルシステムは _ルートファイルシステム_ または `/` として設計されています。 +すべてのファイルシステムは、ルートファイルシステム以下に _マウント_ されます。 +FreeBSD システムでどんなに多くのディスクを使用しても、すべてのディレクトリは、同じディスクの一部であるように見えるので問題ありません。 -その代わり、一つのファイルシステムは _ルートファイルシステム_として設計されています。 ルートファイルシステムのルートディレクトリは `/` として参照されます。それから、他のすべてのファイルシステムは、 ルートファイルシステム以下に _マウント_ されます。 あなたが FreeBSD システムでどんなに多くのディスクを使用しても、 すべてのディレクトリは、 同じディスクの一部であるように見えるので問題ありません。 +`A`, `B` および `C` と呼ばれる三つのファイルシステムがあるケースを考えます。 +それぞれのファイルファイルシステムには一つのルートディレクトリがあり、`A1`, `A2` と呼ばれている二つの他のディレクトリを含んでいます (同様に `B1`, `B2` および `C1`, `C2` があります)。 -`A`,`B` および `C` と呼ばれる三つのファイルシステムがあると仮定しましょう。 それぞれのファイルファイルシステムには一つのルートディレクトリがあり、 `A1`, `A2` と呼ばれている二つの他のディレクトリを含んでいます (同様に `B1`, `B2` および `C1`, `C2` があります)。 +`A` をルートファイルシステムとします。 +このディレクトリになにが含まれているか見るために man:ls[1] コマンドを使うと、`A1` および `A2` の二つのサブディレクトリが表示されるでしょう。 +ディレクトリツリーは以下のようになります。 -`A` をルートファイルシステムとします。 このディレクトリになにが含まれているか見るために `ls` コマンドを使うと、 `A1` および `A2` の二つのサブディレクトリが現れるでしょう。 ディレクトリツリーは以下のようになります。 +image::example-dir1.png[ルートディレクトリおよび 2 つのサブツリーを持つディレクトリツリー] -image::example-dir1.png[] +ファイルシステムはマウント先のファイルシステム内のディレクトリにマウントしなければいけません。 +それでは、`A1` ディレクトリに `B` ファイルシステムをマウントすると仮定します。 +`B` のルートディレクトリは `A1` に置き換えられ、そして `B` 内のディレクトリがそれに応じて現れます。 -ファイルシステムはファイルシステム内のディレクトリにマウントしなければいけません。 それでは、`A1` ディレクトリに `B` ファイルシステムをマウントすると仮定します。 `B` のルートディレクトリは `A1` に置き換えられ、 そして `B` 内のディレクトリがそれに応じて現れます。 +image::example-dir2.png[ルートディレクトリおよび 2 つのサブツリーを持つディレクトリツリー。さらに B1 および B2 サブディレクトリが A1 にぶら下がっています] -image::example-dir2.png[] - -`B1` または `B2` 内にあるどんなファイルも、必要なときに [.filename]#/A1/B1# または [.filename]#/A1/B2# で到達できます。 [.filename]#/A1# にあったすべてのファイルは一時的に隠されました。 それらは `B` が A から_アンマウント_されたら再び現れるでしょう。 +`B1` または `B2` 内にあるどんなファイルも、必要なときに `/A1/B1` または `/A1/B2` で到達できます。 +`/A1` にあったすべてのファイルは一時的に隠されました。 +それらは `B` が `A` から _アンマウント_ されたら再び現れるでしょう。 もし `B` が `A2` にマウントされていたら、この図のようになります。 -image::example-dir3.png[] - -そして、パスはそれぞれ [.filename]#/A2/B1# および [.filename]#/A2/B2# となるでしょう。 - -ファイルシステムは互いのファイルシステム上にもマウントできます。 上記の最後の例に続けて、`C` ファイルシステム は `B` ファイルシステム内の `B1` ディレクトリ上にマウントできます。 次の図のようになります。 +image::example-dir3.png[ルートディレクトリおよび 2 つのサブツリーを持つディレクトリツリー。さらに B1 および B2 サブディレクトリが A2 にぶら下がっています] -image::example-dir4.png[] +そして、パスはそれぞれ `/A2/B1` および `/A2/B2` となるでしょう。 -または `C` は `A1` の下の `A` ファイルシステムに直接マウントできます。 +ファイルシステムは互いのファイルシステム上にもマウントできます。 +上記の最後の例に続けて、`C` ファイルシステム は `B` ファイルシステム内の `B1` ディレクトリ上にマウントできます。 +次の図のようになります。 -image::example-dir5.png[] +image::example-dir4.png[複雑なディレクトリツリー。さまざまなサブディレクトリがルート以下にぶら下がっています。] -もしあなたが MS-DOS(R) を使いなれているなら、 まったく同じではありませんが、これは `join` コマンドと 似ています。 +または `C` を `A` ファイルシステムの `A1` ディレクトリの下に直接マウントできます。 -これは、通常あなた自身が心配する必要のあるものではありません。 一般的に、FreeBSD をインストールするときにファイルシステムを作成し、 どこにマウントするか決定します。そして、 新しいディスクを追加しなければそれらを変更することはありません。 +image::example-dir5.png[複雑なディレクトリツリー。さまざまなサブディレクトリがルート以下にぶら下がっています。] -一つの大きなファイルシステムを用意し、 他のファイルシステムを作成する必要としないことはまったくもって可能です。 この方法にはいくつかの短所と一つの利点があります。 +一つの大きなルートファイルシステムを用意し、他のファイルシステムを作成する必要としないことはまったくもって可能です。 +この方法にはいくつかの短所と一つの利点があります。 .マルチファイルシステムの利点 -* 異なったファイルシステムは異なった _マウントオプション_ を使用できます。 たとえば、注意深い考えなのですが、 ルートファイルシステムを読みだし専用でマウントして、 不注意によって重大なファイルを削除、 または編集できないようににすることができます。 また、[.filename]#/home# のようなユーザが書き込み可能なファイルシステムを他のファイルシステムと分けることによって、 _nosuid_ でマウントすることも可能になります。 このオプションは、ファイルシステムに記録されている _suid_/_guid_ の実行可能ビットを有効にしないので、安全性を高めることができるでしょう。 -* FreeBSD はファイルシステムがどのように使われているかによって、 自動的にファイルシステム上のファイルの配置を最適化します。 したがって、連続的に書き込まれた多くの小さなファイルが含まれているファイルシステムは、 より大きく少ないファイルが含まれているファイルシステムと異なる最適化をするでしょう。 一つの大きなファイルシステムを作成すると、 この最適化は成り立たなくなります。 -* FreeBSD のファイルシステムはトラブルが起きてもとても強固です。 しかしながら臨界点でのトラブルは、 ファイルシステムの構造にまだ損害を与えるかもしれません。 マルチファイルシステムへデータを分割しておくことで、 必要なときにバックアップからレストアすることをより容易にして、 まだシステムが回復するかもしれません。 +* 異なったファイルシステムは異なった _マウントオプション_ を使用できます。 +たとえば、ルートファイルシステムを読みだし専用でマウントして、不注意によってユーザが重大なファイルを削除、または編集できないようにすることができます。 +また、`/home` のようなユーザが書き込み可能なファイルシステムを他のファイルシステムと分けることによって、 _nosuid_ でマウントすることが可能になります。 +このオプションは、ファイルシステムに記録されている _suid_/_guid_ の実行可能ビットを有効にしないので、安全性を高めることができるでしょう。 +* FreeBSD はファイルシステムがどのように使われているかによって、自動的にファイルシステム上のファイルの配置を最適化します。 したがって、連続的に書き込まれた多くの小さなファイルが含まれているファイルシステムは、より大きく少ないファイルが含まれているファイルシステムと異なる最適化をするでしょう。 一つの大きなファイルシステムを作成すると、この最適化は成り立たなくなります。 +* FreeBSD のファイルシステムはトラブルが起きても強固です。 しかしながら臨界点でのトラブルは、ファイルシステムの構造にまだ損害を与えるかもしれません。 マルチファイルシステムへデータを分割しておくことで、 必要なときにバックアップからレストアすることをより容易にして、まだシステムが回復するかもしれません。 .シングルファイルシステムの利点 * ファイルシステムは固定サイズです。 FreeBSD をインストールするときにファイルシステムを作成して、 固定サイズを割りあてたなら、 後になってそのパーティションをより大きくする必要があると気づくかもしれません。 パーティションのサイズを変更するには、 バックアップ、新しいサイズを指定したファイルシステムの再作成、 バックアップしたデータをリストアする作業が必要となるでしょう。 + [IMPORTANT] ==== -FreeBSD には、 man:growfs[8] コマンドがあります。 このコマンドは、この制限を取り除いて、 ファイルシステムのファイルを直ちに増加させることを可能にします。 +FreeBSD には、 man:growfs[8] コマンドがあります。 +このコマンドは、この制限を取り除いて、ファイルシステムのファイルを直ちに増加させることを可能にします。 +ファイルシステムは、そのファイルシステムのあるパーティションの空いている領域に対してのみ拡張できます。 +パーティションを分割した後、空いている領域があれば、man:gpart[8] を用いてパーティションを拡張できます。 +仮想ディスクの最後のパーティションであれば、ディスクを大きくすると、パーティションを拡張できます。 ==== -ファイルシステムはパーティション内に含まれています。 FreeBSD の UNIX(R) 遺産のために、 これは普段使われるパーティション (例えば MS-DOS(R) パーティション) という用語の意味とは違う意味を持っています。 それぞれのパーティションは `a` から `h` までの文字で区別されます。 それぞれのパーティションは、 一つのファイルシステムだけを含むことができます。 このことは、ファイルシステムがファイルシステムの階層上の典型的なマウントポイント、 または含まれているパーティションの文字によって記述されることを意味します。 - -FreeBSD は _スワップ領域_ にもまたディスク領域を使用します。 スワップ領域は FreeBSD に _仮想メモリ_ を提供します。 これはあなたのコンピュータが、 実際に搭載している以上のメモリがあるかのように振舞います。 FreeBSD がメモリを使い果たしたときに、 現在使用されていないデータのいくつかをスワップ領域に移動し、 そのデータが必要となったときに (その他のデータをスワップ領域に移動させてから) メモリ内に移動しなおします。 - -いくつかのパーティションはある慣習と関係づけられています。 - -[.informaltable] -[cols="1,1", frame="none", options="header"] +[[disks-partitions]] +=== ディスクパーティション + +ファイルシステムは _パーティション_ 内に含まれています。 +ディスクは 1 つのパーティションスキーム (<<bsdinstall-part-manual>>) を用いてパーティションに分割されます。 +新しいスキームは GPT で、古い BIOS-ベースのコンピュータは MBR を使用します。 +GPT は、サイズ、オフセットおよびタイプによるディスクのパーティション分割に対応しています。 +多くのパーティションおよびパーティションタイプに対応しているため、GPT が利用できる場合はこのパーティションスキームを使用することが推奨されます。 +GPT パーティションは、接尾語 `p1` が最初のパーティション、接尾語 `p2` が 2 番目のパーティションといったような接尾語を使います。 +一方 MBR パーティションは少ない数のパーティションにのみ対応しています。 +MBR パーティションは、FreeBSD では `スライス` として知られています。 +スライスは他のオペレーティングシステムでも使うことができます。 +FreeBSD のスライスはさらに、BSD ラベル (man:bsdlabel[8] 参照) を用いてパーディションに分割できます。 + +スライス番号は 1 から始まり `s` を前につけられて、デバイス名の後に続きます。 +したがって、"da0__s1__" は一番目の SCSI ドライブ上の一番目のスライスです。 +ディスク上に存在できる物理スライスは、4 つまでですが、適切な種類の物理スライス内に論理スライスを作成できます。 +これらの拡張されたスライス番号は 5 から始まります。 +したがって、 "ada0__s5__" は、一番目の SATA ディスク上の一番目の拡張スライスです。 +これらのデバイスは、スライスを占有することを予期するファイルシステムによって使用されます。 + +GPT または BSD の各パーティションは、一つのファイルシステムだけを含むことができます。 +このことは、ファイルシステムがファイルシステムの階層上の典型的なマウントポイント、または含まれているパーティション名によって記述されることを意味します。 + +FreeBSD は _スワップ領域_ にもまたディスク領域を使用します。 +スワップ領域は FreeBSD に _仮想メモリ_ を提供します。 +これはあなたのコンピュータが、 実際に搭載している以上のメモリがあるかのように振舞います。 +FreeBSD がメモリを使い果たしたときに、現在使用されていないデータのいくつかをスワップ領域に移動し、そのデータが必要となったときに (その他のデータをスワップ領域に移動させてから) メモリ内に移動しなおします。 +これは _ページング_ と呼ばれます。 + +いくつかの BSD パーティションはある慣習と関係づけられています。 + +[cols="25h,~"] |=== | パーティション | 慣習 @@ -613,61 +1247,79 @@ FreeBSD は _スワップ領域_ にもまたディスク領域を使用しま |通常、スワップ領域を含みます。 |`c` -|通常、スライス全体と同じサイズです。 これは、スライス全体にアクセス必要のあるユーティリティ (たとえば、ひどいブロックスキャナ) が、 `c` パーティションにアクセスすることを可能にします。通常、 このパーティション内にファイルシステムを作成しないでしょう。 +|通常、スライス全体と同じサイズです。 +これは、スライス全体にアクセス必要のあるユーティリティ (たとえば、ひどいブロックスキャナ) が、 `c` パーティションにアクセスすることを可能にします。 +通常、このパーティション内にファイルシステムは作成されません。 |`d` |`d` パーティションは、 それに関連づけられた特別な意味を持っていましたが、 今は無いので、普通のパーティションとして動作するでしょう。 |=== -ファイルシステムを含んだそれぞれのパーティションは、FreeBSD が _スライス_ と呼ぶものの中に格納されます。 スライスは FreeBSD の用語で、 普通はパーティションと呼ばれるものです。 もう一度言及しますが、これは FreeBSD の UNIX(R) 背景によるものです。 スライスは 1 から 4 までの番号がつけられます。 - -スライス番号は 1 から始まり `s` を前につけられて、デバイス名の後に続きます。 したがって、"da0_s1_" は一番目の SCSI ドライブ上の 一番目のスライスです。 ディスク上に四つの物理スライスだけが存在できます。しかし、 適切な種類の物理スライス内に論理スライスをもつことができます。 これらの拡張されたスライス番号は 5 から始まります。したがって、 "ad0_s5_" は、一番目の IDE ディスク上の一番目の拡張スライスです。 これらのデバイスは、 スライスを占有することを予期するファイルシステムによって使用されます。 +スライスおよび "危険な専用" の物理ドライブ、 そして他のドライブは `a` から `h` までの文字として表される BSD パーティションを含んでいます。 +この文字はデバイス名に追加されます。 +したがって、 "da0__a__" は一番目の "危険な専用" `da` ドライブ上の `a` パーティションです。 +"ada1s3__e__" は、 二番目の SATA ディスク上の 三番目のスライス内にある五番目のパーティションです。 -スライスや "危険な専用" の物理ドライブ、 そして他のドライブは `a` から `h` までの文字として表される _パーティション_ を含んでいます。 この文字はデバイス名に追加されます。したがって、 "da0_a_" は一番目の "危険な専用" da ドライブ上の a パーティションです。 "ad1s3_e_" は、 二番目の IDE ディスク上の 三番目のスライス内にある五番目のパーティションです。 +最後に、システム上のそれぞれのディスクは識別されます。 +ディスク名はどの種類のディスクであるかを示す記号ではじまり、どのディスクかを示す数字が続きます。 +パーティションやスライスとは異なり、ディスクの番号づけは 0 から始まります。 +共通の記号は <<disks-naming>> に示されます。 -最後に、システム上のそれぞれのディスクは識別されます。 ディスク名はどの種類のディスクであるかを示す記号ではじまり、 どのディスクかを示す数字が続きます。 スライスとは違いディスクの番号づけは 0 から始まります。 共通の記号は <<basics-dev-codes>> に示されます。 +スライスにあるパーティションを参照するときには、ディスク名、`s`、スライス番号、そしてパーティション文字を含めてください。 +<<basics-disk-slice-part>> に例があります。 +GPT パーディションはディスク名、`p` そしてパーティション番号が含まれます。 -パーティションを参照するときには、 FreeBSD はパーティションを含むスライスおよびパーティションも指定することを必要とします。 そしてスライスを参照するときはディスク名も参照しないといけません。 したがって、ディスク名、`s`、スライス番号、 そしてパーティション文字を並べることによってパーティションを参照します。 <<basics-disk-slice-part>>に例があります。 +<<basics-concept-disk-model>> は、MBR スライスを用いたディスク構成の概念のモデルを示します。 -<<basics-concept-disk-model>> は理解をより明らかにすることを助けるための、 ディスク構成の概念のモデルを示します。 +FreeBSD をインストールする際には、MBR を使用する場合にはディスクスライスを設定し、次に FreeBSD に用いるスライス内のパーティションを作成します。 +GPT を使用する場合には、各ファイルシステムにパーティションを設定します。 +どちらのケースでも、それぞれのパーティション内にファイルシステムまたはスワップ領域を作成し、ファイルシステムがどこにマウントされるか決定してください。 +パーティションの操作についての詳細は man:gpart[8] をご覧ください。 -FreeBSD をインストールするために、 まずはじめにディスクスライスの設定をし、 次に FreeBSD に用いるスライス内のパーティションを作成し、 それからそれぞれのパーティション内にファイルシステム (またはスワップ領域) を作成し、 ファイルシステムがどこにマウントされるか決定しなければいけません。 - -[[basics-dev-codes]] -.ディスクデバイス記号 +[[disks-naming]] +.ディスクデバイス名 [cols="1,1", frame="none", options="header"] |=== -| 記号 -| 意味 +| ドライブタイプ +| ドライブデバイス名 + +|SATA および IDE ハードドライブ +|`ada` -|[.filename]#ad# -|ATAPI (IDE) ディスク +|SCSI ハードドライブおよび USB ストレージデバイス +|`da` -|[.filename]#da# -|SCSI ダイレクトアクセスディスク +|NVMe ストレージ +|`nvd` または `nda` -|[.filename]#acd# -|ATAPI (IDE) CDROM +|SATA および IDE CD-ROM ドライブ +|`cd` -|[.filename]#cd# -|SCSI CDROM +|SCSI CD-ROM ドライブ +|`cd` -|[.filename]#fd# -|フロッピーディスク +|フロッピードライブ +|`fd` + +|SCSI テープドライブ +|`sa` + +|RAID ドライバ +|`aacd` (Adaptec(R) AdvancedRAID), `mlxd` および `mlyd` (Mylex(R)), `amrd` (AMI MegaRAID(R)), `idad` (Compaq Smart RAID), `twed` (3ware(R) RAID) など |=== -[[basics-disk-slice-part]] -.ディスク名、スライス名、パーティション名のサンプル [example] ==== +[[basics-disk-slice-part]] +.ディスク名、スライス名、パーティション名のサンプル [.informaltable] [cols="1,1", frame="none", options="header"] |=== -| 記号 +| 名前 | 意味 -|`ad0s1a` -|一番目の IDE ディスク (`ad0`) 上の一番目のスライス (`s1`) 内の一番目のパーティション (`a`)。 +|`ada0s1a` +|一番目の SATA ディスク (`ada0`) 上の一番目のスライス (`s1`) 内の一番目のパーティション (`a`)。 |`da1s2e` |二番目の SCSI ディスク (`da1`) 上の二番目のスライス (`s2`) 内の五番目のパーティション (`e`)。 @@ -678,29 +1330,37 @@ FreeBSD をインストールするために、 まずはじめにディスク .ディスクの概念的構成 [example] ==== -これはシステムに接続された一番目の IDE ディスクの FreeBSD から見た図を示します。 ディスクサイズは 4 GB と仮定し、 2 GB のスライス (MS-DOS(R) でいうパーティション) が二つあるとします。 一番目のスライスは MS-DOS(R) ディスクの [.filename]#C:# を含んでいます。 そして、二番目のスライスは FreeBSD のディスクを含んでいます。 これは FreeBSD インストーラが三つのデータパーティションと一つのスワップパーティションを作成した例です。 +これはシステムに接続された一番目の SATA ディスクの FreeBSD から見た図を示します。 +ディスクサイズは 250 GB と仮定し、80 GB のスライス (MS-DOS(R) でいうパーティション) および 170 GB のスライスがあるとします。 +一番目のスライスは Windows(R) NTFS ファイルシステム `C:` を含んでいます。 +そして、二番目のスライスは FreeBSD のディスクを含んでいます。 +これは FreeBSD インストーラが四つのデータパーティションと一つのスワップパーティションを作成した例です。 -三つのパーティションはそれぞれファイルシステムを含んでいます。 `a` パーティションはルートファイルシステムに使用され、 `e` パーティションは [.filename]#/var# ディレクトリ階層に、 `f` パーティションは [.filename]#/usr# ディレクトリ階層に使用されるでしょう。 - -image::disk-layout.png[] +四つのパーティションはそれぞれファイルシステムを含んでいます。 +パティション `a` はルートファイルシステム、`d` は `/var`, `e` は `/usr`、そして `f` は `/usr` に使用されています。 +パーティション `c` はスライス全体を示しており、通常のパーティションとは異なる使われ方をします。 +image::disk-layout.png[Windows と FreeBSD を 1 つのドライブに共存させたレイアウト] ==== [[mount-unmount]] == ファイルシステムのマウントとアンマウント -ファイルシステムは [.filename]#/# をルート (根) とする木構造として考えると視覚的に理解しやすいでしょう。 ルートディレクトリにある [.filename]#/dev# や [.filename]#/usr#、 その他のディレクトリは枝に相当し、 それらには、[.filename]#/usr/local# などのように、さらに枝分かれすることができます。 +ファイルシステムは `/` をルート (根) とする木構造として考えると視覚的に理解しやすいでしょう。 +ルートディレクトリにある `/dev` や `/usr`、その他のディレクトリは枝に相当し、それらには、`/usr/local` などのように、さらに枝分かれすることができます。 -さまざまな理由がありますが、 ディレクトリをいくつかの異なるファイルシステム上に構築するのが良いでしょう。 たとえば [.filename]#/var# には、 [.filename]#log/# や [.filename]#spool/# など、さまざまな種類の一時ファイルを置くディレクトリがあるため、 あふれてしまう可能性があります。 ルートファイルシステムをあふれさせるのは得策ではありませんので、 普通は [.filename]#/var# を [.filename]#/# から分離します。 +さまざまな理由がありますが、 ディレクトリをいくつかの異なるファイルシステム上に構築するのが良いでしょう。 +たとえば `/var` には、 `log/` や `spool/` など、さまざまな種類の一時ファイルを置くディレクトリがあるため、あふれてしまう可能性があります。 +ルートファイルシステムをあふれさせるのは得策ではありませんので、普通は `/var` を `/` から分離します。 -また、次のような場合も、ディレクトリツリーを 別のファイルシステムに置く理由として良くあげられます。 それは、たとえば物理的に別のディスクにディレクトリツリーを置く場合、 crossref:advanced-networking[network-nfs,ネットワークファイルシステム (Network File System)] や CDROM ドライブのような別の仮想ディスクに置くという場合です。 +また、次のような場合も、ディレクトリツリーを別のファイルシステムに置く理由として良くあげられます。 +それは、たとえば物理的に別のディスクにディレクトリツリーを置く場合、 crossref:advanced-networking[network-nfs, 「ネットワークファイルシステム (NFS)」] で説明されているようにネットワークファイルシステムをマウントしたり、CDROM ドライブのような別の仮想ディスクに置くという場合です。 [[disks-fstab]] -=== [.filename]#fstab# ファイル - -[.filename]#/etc/fstab# に書かれているファイルシステムは (`noauto` オプションがなければ) crossref:boot[boot,起動プロセス]の途中で 自動的にマウントされます。 +=== fstab ファイル -[.filename]#/etc/fstab# ファイルは、 次のような書式で書かれた行のリストになっています。 +`/etc/fstab` に書かれているファイルシステムは、`noauto` オプション指定されているエントリを除いて crossref:boot[boot,起動プロセス] の途中で自動的にマウントされます。 +このファイルは、 次のような書式で書かれたエントリを含んでいます。 [.programlisting] .... @@ -708,10 +1368,10 @@ device /mount-point fstype options dumpfreq passno .... `device`:: -デバイスの名前 (存在していなければなりません)。 crossref:disks[disks-naming,「デバイス名」] に説明があります。 +デバイス名。crossref:disks[disks-naming,「デバイス名」] に説明があります。 `mount-point`:: -ファイルシステムがマウントするディレクトリの名前 (存在していなければなりません)。 +ファイルシステムがマウントするディレクトリ。 `fstype`:: man:mount[8] に渡されるファイルシステムタイプ。 FreeBSD ファイルシステムのデフォルトは `ufs` です。 @@ -723,27 +1383,34 @@ man:mount[8] に渡されるファイルシステムタイプ。 FreeBSD ファ これは man:dump[8] が使うもので、 どのファイルシステムにダンプが必要なのかを決めます。 この項目がなければ、0 であるものとみなされます。 `passno`:: -これはファイルシステムをチェックする順番を決めます。 ファイルシステムチェックを飛ばしたいファイルシステムには、 `passno` を 0 に設定してください。 ルートファイルシステム (どれよりも先にチェックしなければなりません) は `passno` を 1 に設定してください。 他のファイルシステムの `passno` は 1 以上に設定してください。 同じ `passno` のファイルシステムがあった場合、 man:fsck[8] は可能であれば並行してファイルシステムのチェック を行なおうとします。 +これは再起動後に man:fsck[8] がチェックする UFS ファイルシステムの順番を決めます。 +ファイルシステムチェックを飛ばしたいファイルシステムには、`passno` を 0 に設定してください。 +ルートファイルシステムはどれよりも先にチェックする必要があり、`passno` は 1 に設定してください。 他のファイルシステムの `passno` は 1 以上に設定してください。 同じ `passno` のファイルシステムがあった場合、 man:fsck[8] は可能であれば並行してファイルシステムのチェック を行なおうとします。 -[.filename]#/etc/fstab# ファイルの書式やオプションに関しての詳細は、 man:fstab[5] をご覧ください。 +`/etc/fstab` の書式やオプションに関しての詳細は、 man:fstab[5] をご覧ください。 [[disks-mount]] -=== `mount` コマンド - -man:mount[8] コマンドは、 ファイルシステムをマウントするために使われるものです。 +=== man:mount[8] の使い方 -基本的には、次のように使います。 +ファイルシステムは man:mount[8] を用いてマウントされます。 +基本な構文は以下のようになります。 +[example] +==== [source,shell] .... # mount device mountpoint .... +==== -man:mount[8] マニュアルページにはたくさんのオプションが書かれていますが、 いちばんよく使われるのは次のものです。 +`/etc/fstab` に記載されているファイルシステムについても、マウントポイントを指定することでマウントできます。 + +man:mount[8] で説明されているように、このコマンドはたくさんのオプションを提供します。 +最もよく使われるのは次のものです。 .マウントオプション `-a`:: -[.filename]#/etc/fstab# にある全てのファイルシステムをマウントします。 例外は "noauto" の印がついているものと、 `-t` フラグで除外されたものと、 すでにマウントされているファイルシステムです。 +`/etc/fstab` にある全てのファイルシステムをマウントします。 例外は "noauto" の印がついているものと、 `-t` フラグで除外されたものと、 すでにマウントされているファイルシステムです。 `-d`:: 実際にマウントシステムコールする以外のすべてのことをします。 このオプションは `-v` フラグと組み合わせて使い、 man:mount[8] が実際なにをしようとしているのか調べるのに便利です。 @@ -752,11 +1419,11 @@ man:mount[8] マニュアルページにはたくさんのオプションが書 クリーンでないファイルシステムを強制的にマウントします (危険です)。もしくは、ファイルシステムのマウント状態を 読み書き可能から読み込みのみに変更するとき、 書き込みアクセスを強制的に取り消します。 `-r`:: -ファイルシステムを読み込み専用でマウントします。 これは `ro` (5.2 より前の FreeBSD では `rdonly` です) 引数を `-o` オプションに使うのと同じです。 +ファイルシステムを読み込み専用でマウントします。 +`-o ro` を使うのと同じです。 -`-t` _fstype_:: -ファイルシステムを指定のファイルシステムタイプでマウントします。 または、`-a` を使った場合、 指定したタイプのファイルシステムのみマウントします。 -+ +``-t _fstype_``:: +指定のファイルシステムタイプでマウントします。 または、`-a` を使った場合、 指定したタイプのファイルシステムのみマウントします。 デフォルトのファイルシステムタイプは "ufs" です。 `-u`:: @@ -768,168 +1435,200 @@ man:mount[8] マニュアルページにはたくさんのオプションが書 `-w`:: ファイルシステムを読み書き可能にマウントします。 -`-o` には、 次のようなオプションを複数カンマで区切って指定します。 以下に挙げるのはその一部です。 - -noexec:: -そのファイルシステム上のバイナリの実行を禁止します。 セキュリティのために有用なオプションです。 +`-o` には、 次のようなオプションを複数カンマで区切って指定できます。 nosuid:: そのファイルシステム上の setuid や setgid フラグを解釈しません。 これもセキュリティのために有用なオプションです。 [[disks-umount]] -=== `umount` コマンド - -man:umount[8] コマンドは、パラメータとしてマウントポイントの一つ、 デバイス名、もしくは `-a` や `-A` といったオプションを取ります。 - -いずれの形式でも `-f` で強制的なアンマウントを行ない、 `-v` で詳細な出力を出します。 ただしほとんどの場合、`-f` は使わないほうがよいでしょう。 強制的にファイルシステムをアンマウントすると、 計算機がクラッシュしたりファイルシステム上部のデータが 破壊されたりする恐れがあるためです。 - -オプション `-a` と `-A` はマウントされているファイルシステムすべてをアンマウントするのに使います。 `-t` にファイルシステムタイプを指定すると、 指定されたものだけがアンマウントされます。 また、`-A` を使うとルートファイルシステムはアンマウントしません。 +=== man:umount[8] の使い方 -[[basics-processes]] -== プロセス +ファイルシステムをアンマウントするには、man:umount[8] を使ってください。 +このコマンドは、パラメータとしてマウントポイントの一つ、 デバイス名、もしくは `-a` や `-A` といったオプションを取ります。 -FreeBSD はマルチタスクのオペレーティングシステムです。 つまり、1つ以上のプログラムがあたかも同時に動いているかのように見える、 ということです。動作中のプログラムはそれぞれ _プロセス_ と呼ばれます。 コマンドを実行すると、最低でも1つの新しいプロセスがスタートします。 システムを正常に機能させるために常に動作しているシステムプロセスもたくさんあります。 +いずれの形式でも `-f` で強制的なアンマウントを行ない、 `-v` で詳細な出力を出します。 +ただしほとんどの場合、`-f` は使わないほうがよいでしょう。 +計算機がクラッシュしたりファイルシステム上部のデータが破壊されたりする恐れがあります。 -各プロセスは_プロセス ID_、もしくは _PID_ と呼ばれる数字でただ一つに識別されます。 また、ファイルのように各プロセスには所有者とグループがあります。 所有者とグループの情報は、 これまでに見たファイル許可属性を用い、 そのプロセスが開けるファイルやデバイスを決定するために使われます。 多くのプロセスには親プロセスもあります。 親プロセスとは、そのプロセスをスタートさせたプロセスのことです。 例えば、シェルにコマンドを打ち込んでいるときはシェルがプロセスで、 動かすコマンドもまたどれもプロセスです。 このようにして起動するプロセスはそれぞれシェルが親プロセスになります。 これの例外は man:init[8] という特別なプロセスです。 `init` は常に最初のプロセスなので、 PID は必ず 1 になります。 `init` は FreeBSD がスタートするときカーネルによって自動的に起動されます。 -man:ps[1] と man:top[1] という2つのコマンドが システム上のプロセスを確認するために特に便利です。 `ps` コマンドは現在動作中のプロセスのリストを見るために使い、 PID やプロセスが使っているメモリの量、 どういうコマンドラインで起動されたのか、 などを表示させることができます。 `top` コマンドは動作中の全てのプロセスを表示し、 数秒ごとに表示を更新するので、 計算機がなにをしているのかインタラクティブに知ることができます。 +マウントされているファイルシステムすべてをアンマウントするには、`-a` と `-A` を使ってください。 +`-t` にファイルシステムタイプを指定すると、指定されたものだけがアンマウントされます。 +`-A` を使うとルートファイルシステムはアンマウントしません。 -デフォルトでは、`ps` は動作中かつ所有者が自分のコマンドのみを表示します。 例えば: +[[basics-processes]] +== プロセスおよびデーモン + +FreeBSD はマルチタスクのオペレーティングシステムです。 +動作中のプログラムはそれぞれ _プロセス_ と呼ばれます。 +すべてのコマンドは実行すると、最低でも 1 つの新しいプロセスを開始します。 +FreeBSD により実行されているシステムプロセスもたくさんあります。 + +各プロセスは _プロセス ID_ (PID) と呼ばれる数字でただ一つに識別されます。 +ファイルのように各プロセスには所有者とグループがあり、 +所有者とグループの許可属性は、そのプロセスが開けるファイルやデバイスを決定するために使われます。 +多くのプロセスには親プロセスもあります。 +親プロセスとは、そのプロセスをスタートさせたプロセスのことです。 +例えば、シェルがプロセスで、シェルから起動されるコマンドは、シェルを親プロセスとするプロセスとなります。 +例外は man:init[8] という特別なプロセスです。 +`init` は FreeBSD がスタートするときに起動される最初のプロセスで、PID は常に `1` です。 + +ユーザから始終入力があるように設計されていないプログラムがあり、そういったプログラムは最初から端末と切り離されています。 +例えば、ウェブサーバはユーザからの入力ではなくウェブのリクエストを処理します。 +メールサーバも、 こういった種類のアプリケーションの一例です。 +このような種類のプログラムは、 _デーモン_ と呼ばれます。 +デーモンはギリシャ神話から来ており、目に見えないように役立つことをしてくれる善でも悪でもない実体を表します。 +このため、BSD のマスコットはスニーカーをはいてフォークを携えたかわいらしい姿のデーモンなのです。 + +通常デーモンとして動作するプログラムには末尾に "d" を持った名前をつける慣習があります。 +例えば、BIND は Berkeley Internet Name Domain ですが、 実際実行されるプログラムは `named` です。 +また、Apache ウェブサーバのプログラムは `httpd`、ラインプリンタスプーリングデーモンは `lpd` です。 +これは単なる命名に関する慣習です。 +例えば、Sendmail アプリケーションの主なメールデーモンは `sendmail` で、`maild` ではありません。 + +=== プロセスを確認する + +システム上で実行中のプロセスを確認するには、man:ps[1] または man:top[1] を使ってください。 +現在動作中のプロセスのリスト、プロセスの PID やプロセスが使っているメモリの量、どういうコマンドラインで起動されたのかなどを表示させるには、man:ps[1] を使ってください。 +man:top[1] を使用すると、動作中の全てのプロセスを表示できます。 +数秒ごとに表示を更新するので、計算機が何をしているのかインタラクティブに知ることができます。 + +デフォルトでは、man:ps[1] はユーザにより動作中かつ所有のコマンドのみを表示します。 +例えば: [source,shell] .... % ps - PID TT STAT TIME COMMAND - 298 p0 Ss 0:01.10 tcsh - 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) -37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) -48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi -48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) -72210 p0 R+ 0:00.00 ps - 390 p1 Is 0:01.14 tcsh - 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y - 6688 p3 IWs 0:00.00 tcsh -10735 p4 IWs 0:00.00 tcsh -20256 p5 IWs 0:00.00 tcsh - 262 v0 IWs 0:00.00 -tcsh (tcsh) - 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 - 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 - 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc - 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish -.... - -この例で分かるとおり、 man:ps[1] の出力はいくつかの行に整形されています。 `PID` は先ほど見たプロセス ID です。 PID は 1 から順に 99999 まで割り当てられ、 足りなくなると最初に戻って使い回されます (使用中の PID は割り当てられません) 。 `TT` の列はプログラムが動いている tty を示します。 差し当たって無視してもかまわないでしょう。 `STAT` はプログラムの状態を示しますが、 これもまた無視してよいでしょう。 `TIME` はプログラムがその CPU 上で動いている時間の長さです- 通常はプログラムをスタートさせたときからの経過時間ではありません。 CPU 上で時間を使う必要があるまでかなりの時間を費すようなプログラムもあるからです。 最後に、`COMMAND` はそのプログラムを起動するのに使われたコマンドラインとなります。 - -man:ps[1] は表示する情報を変えるためのオプションをたくさんサポートしています。 いちばん便利なのは `auxww` でしょう。 `a` は自分のプロセスだけではなく、 動作中のプロセス全部についての情報を表示します。 `u` はプロセスの所有者の名前をメモリ使用量と同様に表示します。 `x` はデーモンプロセスについての情報を表示し、 `ww` で、スクリーンに入りきらないほど長くなったコマンドラインでも省略せず、 man:ps[1] に各プロセスの全コマンドラインを表示させます。 - -man:top[1] の出力も同様です。 例は以下の通りです。 - -[source,shell] + PID TT STAT TIME COMMAND +8203 0 Ss 0:00.59 /bin/csh +8895 0 R+ 0:00.00 ps .... -% top -last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 -47 processes: 1 running, 46 sleeping -CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle -Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free -Swap: 256M Total, 38M Used, 217M Free, 15% Inuse - PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND -72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top - 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 - 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA - 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm -48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu - 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd - 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt -... -.... +man:ps[1] の出力はいくつかの列に整形されています。 +`PID` の列はプロセス ID を表示します。 +PID は 1 から順に 99999 まで割り当てられ、その後足りなくなると最初に戻って使い回されます。ただし、使用中の PID には割り当てられません。 +`TT` の列はプログラムが動いている tty を示し、`STAT` はプログラムの状態を示します。 +`TIME` はプログラムがその CPU 上で動いている時間の長さです。 +通常はプログラムをスタートさせたときからの経過時間ではありません。 +多くのプログラムは、CPU 上で時間を使う必要があるまでかなりの時間を費すためです。 +最後に、`COMMAND` はそのプログラムを起動するのに使われたコマンドとなります。 -出力は2つのセクションに分かれています。 ヘッダ (最初の 5 行です) は動作している最新のプロセスの PID、 システムの平均負荷 (システムがどれくらい忙しいかの指標)、 システムの稼働時間 (最後の再起動からの時間) と現在の時刻を示します。 ヘッダの中の他の数字は動作中のプロセスの数 (この場合 47 ですね)、 使われているメモリとスワップ領域の量、 そしてシステムが異なる CPU 状態に消費した時間と関係します。 +表示する情報を変更するオプションが用意されています。 +いちばん便利なのは `auxww` でしょう。 +`a` はすべてのユーザの動作中のプロセス全部についての情報を表示します。 +`u` はプロセスの所有者のユーザ名とメモリ使用量を表示します。 +`x` はデーモンプロセスについての情報を表示し、`ww` で、スクリーンに入りきらないほど長くなったコマンドラインでも省略せず、man:ps[1] に各プロセスの全コマンドラインを表示させます。 -その下には man:ps[1] の出力と同じような情報を持った行が続きます。 前と同様 PID にユーザ名、消費 CPU 時間と実行中のコマンドを知ることができます。 man:top[1] を使うとデフォルトでプロセスが使っているメモリ容量も分かります。 メモリ使用量の欄は2項目に分かれており、 一方は合計使用量、 そしてもう一方は実使用量です-合計使用量はアプリケーションが必要としているメモリ量で、 実使用量はその時点で実際に使われているメモリ量です。 この例では、man:getenv[3] がだいたい 30 MB の RAM を必要としていますが、 いまのところ 9 MB しか使っていないことが分かります。 +man:top[1] の出力も同様です。 -man:top[1] は自動的に2秒ごとに画面を更新します。 `s` オプションを使えば更新間隔を変更することができます。 +[source,shell] +.... +% top +last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46 +107 processes: 2 running, 104 sleeping, 1 zombie +CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle +Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free +ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other +Swap: 2048M Total, 2048M Free + + PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND + 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg + 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4 + 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox + 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused + 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top + 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4 + 8705 dru 4 35 0 480M 98M select 2 0:20 0.00% kdeinit4 + 8076 dru 6 20 0 552M 113M uwait 0 0:12 0.00% soffice.bin + 2623 root 1 30 10 12088K 1636K select 3 0:09 0.00% powerd + 2338 dru 1 20 0 440M 84532K select 1 0:06 0.00% kwin + 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4 +.... + +出力は2つのセクションに分かれています。 +ヘッダ (最初の 5 または 6 行) は動作している最新のプロセスの PID、システムの平均負荷 (システムがどれくらい忙しいかの指標)、システムの稼働時間 (最後の再起動からの時間) と現在の時刻を示します。 +ヘッダの中の他の数字は動作中のプロセスの数、使われているメモリとスワップ領域の量、そしてシステムが異なる CPU 状態に消費した時間と関係します。 +ZFS ファイルシステムのモジュールをロードしている場合には、`ARC` 行にはディスクではなくメモリキャッシュから読み込んだデータ量が表示されます。 + +ヘッダの下には、PID、ユーザ名、消費 CPU 時間とプロセスを起動したコマンドといった man:ps[1] の出力と同じような情報を持った行が続きます。 +man:top[1] を使うとデフォルトでプロセスが使っているメモリ容量を表示します。 +メモリ使用量の欄は 2 項目に分かれており、 一方は合計使用量、 そしてもう一方は実使用量です。 +合計使用量はアプリケーションが必要としているメモリ量で、実使用量はその時点で実際に使われているメモリ量です。 + +man:top[1] は自動的に 2 秒ごとに画面を更新します。 +`-s` 使うと更新間隔を変更することができます。 [[basics-daemons]] -== デーモン、シグナルとプロセス終了 - -エディタを使っている場合、エディタを操作するのは簡単です。 ファイルを開く、などと動かせばよいのです。 このように操作できるのは、エディタにそういった機能があり、 かつエディタが_端末_に関連づけられているからです。 一方、ユーザから始終入力があるように設計されていないプログラムもあり、 そういったプログラムは最初から端末と切り離されます。 例えば、ウェブサーバは一日中ウェブのリクエストばかり処理するので、 通常全く入力を必要としません。 サイトからサイトへとメールを転送するプログラムも、 こういった種類のアプリケーションの一例です。 - -このようなプログラムは、_デーモン_と呼ばれます。 デーモンはギリシャ神話の登場人物で、 善でも悪でもなく、大雑把にいうと、 人間のために役立つことをしてくれる小さな妖精さんです。 今日の便利なウェブサーバやメールサーバととてもよく似ていますね。 このため、長い間 BSD のマスコットはスニーカーをはいてフォークを携えた かわいらしい姿のデーモンなのです。 - -通常デーモンとして動作するプログラムには末尾に "d" を持った名前をつける慣習があります。 BIND は Berkeley Internet Name Domain ですが、 実際実行されるプログラムは `named` という名前です。 Apache ウェブサーバのプログラムは `httpd` と呼ばれ、 ラインプリンタスプーリングデーモンは `lpd`、 などなどです。 これは単なる慣習で、しっかりがっちりとしたルールではありません。 例えば、Sendmail アプリケーションの主なメールデーモンは `sendmail` という名前で、 連想しそうな `maild` ではありません。 +=== プロセスの終了 -時々、デーモンプロセスと通信したいときがあります。 一つの方法として、それ (に限らずどんな動作中のプロセスでも) に _シグナル_と呼ばれるものを送信する方法です。 送信可能なシグナルはたくさんあります-特別な意味があるものもあれば、 アプリケーションによって解釈されるものもありますし、 アプリケーションがシグナルをどう解釈するかは そのアプリケーションの文章を読めば分かるでしょう。 自分が持っているプロセスにしかシグナルを送ることはできません。 他人のプロセスに man:kill[1] や man:kill[2] を使ってシグナルを送っても、許可されないでしょう。 これの例外は `root` ユーザで、 ルートユーザは誰のプロセスでもシグナルを送ることができます。 +動作中のプロセスもしくはデーモンと通信する一つの方法は、man:kill[1] を用いて _シグナル_ を送信する方法です。 +送信可能なシグナルはたくさんあります。 +特別な意味があるものもあれば、アプリケーションの文章に説明されているものもあります。 +ユーザは自分が所有者となっているプロセスにのみシグナルを送ることができます。 +他人のプロセスにシグナルを送ると、permission denied というエラーになるでしょう。 +この例外は `root` ユーザで、 ルートユーザは誰のプロセスに対してもシグナルを送ることができます。 -FreeBSD もアプリケーションにシグナルを送ることがあります。 アプリケーションを下手に書くと、 予想外のメモリにアクセスしようとするので、 FreeBSD がプロセスに _セグメンテーション違反_ シグナル (`SIGSEGV`) を送ります。 ある程度の時間が経ったら man:alarm[3] システムコールを使って警告してもらうようなアプリケーションには、 警告シグナル (`SIGALRM`) が送信される、 などです。 +オペレーティングシステムもプロセスにシグナルを送ることができます。 +アプリケーションを下手に書いてしまい、予想外のメモリにアクセスしようとすると、FreeBSD はプロセスに "セグメンテーション違反" シグナル (`SIGSEGV`) を送ります。 +ある程度の時間が経ったら man:alarm[3] システムコールを使って警告してもらうように書かれているアプリケーションには、"警告" シグナル (`SIGALRM`) が送信されます。 -プロセスを止めるためには2つのシグナル、 `SIGTERM` か `SIGKILL` を使います。 `SIGTERM` は穏かにプロセスを終了させる方法です。 プロセスはシグナルを_受け取る_ことができ、 終了させたいのだなということを理解し、 開いているログファイルを全部を閉じ、 一般的に終了前にしていたことを終えることができます。 中断できない処理の途中だと、`SIGTERM` をプロセスが無視することもあるかもしれません。 +プロセスを止めるためには2つのシグナル、`SIGTERM` か `SIGKILL` を使います。 +`SIGTERM` は穏かにプロセスを終了させる方法です。 +プロセスはシグナルを受け取ることができ、開いているすべてのログファイルを閉じ、終了前にしていたことを終えるように試みることができます。 +中断できない処理の途中だと、`SIGTERM` をプロセスが無視することもあるかもしれません。 -プロセスは `SIGKILL` を無視することができません。 これは、"なにをしていようが構わないから今すぐ止まれ" というシグナルです。 プロセスに `SIGKILL` を送ると、 FreeBSD はそのプロセスをそこで止めます。 - -使う可能性のあるシグナルは、他に `SIGHUP`、`SIGUSR1`、と `SIGUSR2` があります。 これらは一般的な用途のシグナルで、 このシグナルが送信されたときアプリケーションによって別のことをします。 - -ウェブサーバの設定ファイルを変更したとしましょう-ウェブサーバに新しい設定を再読み込みさせたいですね。 `httpd` を止めて再起動することもできますが、 そうするとウェブサーバは一瞬ながら停止してしまいますし、 ちょっとでも止まってほしくないこともあるでしょう。 ほとんどのデーモンは `SIGHUP` シグナルに対して設定ファイルを再読み込みする反応を返すよう書かれています。 従って、`httpd` を止めて再起動する代わりに、 `SIGHUP` シグナルを送りましょう。 これらのシグナルへの標準的な反応というものがないために、 デーモンごとに行動が違うので、 疑問があれば必ずそのデーモンの文書を読んでください。 - -man:kill[1] コマンドを使って送るシグナルはこの例をご覧ください。 - -[.procedure] -==== -*Procedure: プロセスにシグナルを送る* - -この例では、man:inetd[8] にシグナルを送る方法を示します。 `inetd` の設定ファイルは [.filename]#/etc/inetd.conf# で、 `inetd` は `SIGHUP` が送信されるとこの設定ファイルを再読み込みします。 - -. シグナルを送りたいプロセスのプロセス ID を探します。 それには man:ps[1] と man:grep[1] を使います。 man:grep[1] コマンドは出力を検索するために使い、 指定した文字列を探します。 このコマンドは一般ユーザで実行しますが、 man:inetd[8] は `root` で実行されているので、 man:ps[1] には `ax` オプションを与える必要があります。 -+ -[source,shell] -.... -% ps -ax | grep inetd -198 ?? IWs 0:00.00 inetd -wW -.... -+ -ということで、man:inetd[8] の PID は 198 です。 `grep inetd` コマンドがこの出力に出てくる場合もあります。 それは、man:ps[1] が動作中のプロセスのリストを見つける方法によります。 -. man:kill[1] を使ってシグナルを送ります。 man:inetd[8] は `root` で起動されているために、 まず man:su[1] を使って `root` にならなければなりません。 -+ -[source,shell] -.... -% su -Password: -# /bin/kill -s HUP 198 -.... -+ -大部分の UNIX(R) コマンドと同じく、 成功したら man:kill[1] は何の出力も表示しません。 自分のものではないプロセスにシグナルを送ると、 `kill: _PID_: Operation not permitted` と表示されます。 PID を打ち間違えると、 悪いことに間違ったプロセスにシグナルを送ってしまうか、 もしくは運がよければその時点で使われていない PID にシグナルを送ったことになり、`kill: _PID_: No such process` と表示されます。 +プロセスは `SIGKILL` を無視することができません。 +プロセスに `SIGKILL` を送ると、プロセスは通常その時点で止まります。 -[NOTE] -.なぜ `/bin/kill` を使うんでしょう? -====== -多くのシェルは `kill` コマンドを組み込みコマンドとして備えています。 つまり、[.filename]#/bin/kill# を実行するのではなく、 シェルが直接シグナルを送ります。 これはとても便利なのですが、 シェルが違うと送るシグナルの名前の指定の仕方が違います。 シェルによって異なるシグナルの指定の仕方を全部覚えようとはせずに、 `/bin/kill ...` コマンドを直接使うほうが簡単です。 -====== -==== +他に良く使われるシグナルには、`SIGHUP`、`SIGUSR1` と `SIGUSR2` があります。 +これらは一般的な用途のシグナルなので、このシグナルが送信されたときの応答は、アプリケーション毎に異なります。 -他のシグナルの送り方はほとんど同じで、 コマンドラインの `TERM` や `KILL` を必要に応じて変えるだけです。 +例として、ウェブサーバの設定ファイルを変更後、ウェブサーバに設定を再読み込みさせる必要があります。 +`httpd` を再起動するとウェブサーバは一瞬ながら停止してしまいます。 +その代わりに `SIGHUP` シグナルを送りましょう。 +デーモンごとに行動が違うので、`SIGHUP` が期待する結果となるように、そのデーモンの文書を読んで確認してください。 [IMPORTANT] ==== -システム上のランダムプロセスを終了させるのはよくありません。 特に、プロセス ID が 1 の man:init[8] は特別です。 `/bin/kill -s KILL 1` を使うといとも簡単にシステムをシャットダウンさせることができます。 kbd:[Return] を押す_前_に man:kill[1] を実行する引数を二重にチェックする_癖_をつけてください。 +システム上のランダムプロセスを終了させるのはよくありません。 +特に、PID が 1 の man:init[8] は特別です。 +`/bin/kill -s KILL 1` は推奨されていませんが、実行するといとも簡単にシステムをシャットダウンさせることができます。 +kbd:[Return] を押す _前_ に man:kill[1] を実行する引数を二重にチェックする _癖_ をつけてください。 ==== [[shells]] == シェル -FreeBSD では日々の作業のほとんどは、 「シェル」と呼ばれるコマンドラインインタフェイスを通して行われます。 シェルの主な仕事はコマンドを入力チャンネルから受け取り、 そしてそれらを実行することです。 大部分のシェルはさらに組み込みの機能を持っていて、日々の作業、 ファイル管理やファイル名の展開、コマンドライン編集、 コマンドマクロ、環境変数などに便利です。 FreeBSD には `sh` (Bourne Shell) や `tcsh` (高機能 C-shell) が含まれています。 また、 これ以外にも `zsh` や `bash` などたくさんのシェルが FreeBSD Ports Collection から利用可能です。 - -「あなたは、どのシェルを使いますか?」という質問は、 まったく趣味の問題です。 あなたが C のプログラマだったとすれば、 `tcsh` のような C 風のシェルの方が落ち着くかもしれません。 Linux から来た人や UNIX(R) のコマンドラインインタフェイスになじみがなければ、 `bash` を試すのも良いでしょう。 ポイントは、それぞれのシェルは、 あなたの好みの作業環境で利用できる (もしくはできない) 独自の機能を持っているということ、 そして、どのシェルを使うことにするかを決めるのはあなた自身だということです。 - -シェルの一般的な機能の一つに、ファイル名の補完があります。 コマンドやファイル名の最初の数文字を与えて kbd:[Tab] キーを押すことで、 シェルにコマンドやファイル名の残りの部分を自動的に補完させることができます。 例をあげましょう。 二つのファイル [.filename]#foobar#, [.filename]#foo.bar# が あったとします。 ここで [.filename]#foo.bar# の方を削除するには、 `rm fo[Tab].[Tab]` と入力します。 - -するとシェルは `rm foo[BEEP].bar` と出力するでしょう。 - -[BEEP] のところはコンソールのベル (訳注: 通常はビープ音が鳴ります) です。 これは複数のファイルがマッチしたため、 ファイル名の補完を完全に行なえなかったことを伝えています。 [.filename]#foobar# と [.filename]#foo.bar# は 両方とも `fo` ではじまるため、 補完できるのは `foo` までです。 ここで `.` を入力して kbd:[Tab] を押せば、 シェルはファイル名の残りの部分を補完できます。 - -もう一つあげられるシェルの特徴として、環境変数があります。 環境変数とは、シェルの環境変数空間におけるキーと値とのペアです。 この変数空間は、そのシェルから起動されたプログラムから参照でき、 それを利用してプログラムの設定を保存するのに利用されます。 下の表は、一般的な環境変数とその意味を示したものです。 - -[.informaltable] -[cols="1,1", frame="none", options="header"] +_シェル_ は、オペレーティングシステムを利用するためのコマンドラインインタフェースを提供します。 +シェルは入力チャンネルからコマンドを受け取り、それらを実行します。 +大部分のシェルは、日々の作業、ファイル管理やファイル名の展開、コマンドライン編集、コマンドマクロ、環境変数といった組み込みの機能を持ってます。 +FreeBSD には Bourne Shell (man:sh[1]) や 高機能 C-shell (man:tcsh[1]) が含まれています。 +また、これ以外にも `zsh` や `bash` などのシェルが FreeBSD Ports Collection から利用可能です。 + +どのシェルを使うかは、まったく趣味の問題です。 +あなたが C のプログラマだったとすれば、man:tcsh[1] のような C 風のシェルの方が落ち着くかもしれません。 +Linux(R) ユーザであれば、`bash` を好まれるでしょう。 +それぞれのシェルは、 ユーザの好みの作業環境で利用できる (もしくはできない) 独自の機能を持っているということ、そして、どのシェルを使うことにするかを決めるのはユーザ自身ということです。 + +シェルの一般的な機能の一つに、ファイル名の補完があります。 +コマンドやファイル名の最初の数文字を入力して kbd:[Tab] を押すと、シェルにコマンドやファイル名の残りの部分を補完させることができます。 +例として、`foobar` および `footbar` という二つのファイルがあるとします。 +`foobar` を削除するために `rm foo` と入力し、kbd:[Tab] を押してファイル名を補完しようとします。 + +しかしシェルは `rm foo` とだけ出力します。 +`foobar` および `football` のファイル名は、両方とも `foo` から始まるため、ファイル名の補完を完全には行なえませんでした。 +一つ以上のファイル名にマッチした場合、ビープ音をらすシェルもあれば、選択できるすべてのファイル名を表示するシェルもあります。 +この場合、希望するファイル名を同定するために、ユーザはさらに文字を入力する必要があります。 +`t` を入力してもう一度 kbd:[Tab] を押すと、シェルはファイル名を確定でき、ファイル名の残りの部分が補完されます。 + +もう一つあげられるシェルの特徴として、環境変数があります。 +環境変数とは、シェルの環境変数におけるキーと値とのペアです。 +この環境変数は、そのシェルから起動されたプログラムから参照でき、それを利用してプログラムの設定を保存するのに利用されます。 +<<shell-env-vars>> は、一般的な環境変数とその意味の一覧です。 +環境変数の名前は常に大文字です。 + +[[shell-env-vars]] +.一般的な環境変数 +[cols="25h,~"] |=== | 変数名 | 意味 @@ -941,7 +1640,7 @@ FreeBSD では日々の作業のほとんどは、 「シェル」と呼ばれ |コロンで区切られた実行ファイル探索のための ディレクトリのリスト。 |`DISPLAY` -|接続する X11 ディスプレイのネットワーク名 (存在する場合のみ)。 +|接続する Xorg ディスプレイのネットワーク名 (存在する場合のみ)。 |`SHELL` |現在のシェル。 @@ -953,116 +1652,194 @@ FreeBSD では日々の作業のほとんどは、 「シェル」と呼ばれ |種々の端末の機能を実現する端末のエスケープコードの データベースのエントリ。 |`OSTYPE` -|オペレーティングシステムの種別。 たとえば FreeBSD。 +|オペレーティングシステムの種別。 |`MACHTYPE` -|システムが動作している CPU のアーキテクチャ。 +|システムの CPU アーキテクチャ。 |`EDITOR` |ユーザの選んだテキストエディタ。 |`PAGER` -|ユーザの選んだテキストページャ。 +|ユーザの選んだ画面上でテキストを見るためのユーティリティ。 |`MANPATH` |コロンで区切られたマニュアルページ探索のための ディレクトリのリスト。 |=== -環境変数をセットする方法は、 それぞれのシェルごとに多少異なります。 たとえば、`tcsh` や `csh` 等の C シェルでは `setenv` を使います。 `sh` や `bash` 等の Bourne シェルでは `set` と `export` を使います。 たとえば `csh` か `tcsh` で `EDITOR` 環境変数の値を [.filename]#/usr/local/bin/emacs# に セットするか変更するには、次のようにします。 +環境変数を設定する方法は、シェルごとに多少異なります。 +man:tcsh[1] や man:csh[1] では `setenv` を使います。 +man:sh[1] や `bash` 等の Bourne シェルでは、`export` を使って現在の環境変数を設定します。 +以下の例では、`tcsh` シェルでデフォルトの `EDITOR` を `/usr/local/bin/emacs` に設定します。 [source,shell] .... % setenv EDITOR /usr/local/bin/emacs .... -Bourne シェルでは次のようになります。 +`bash` では次のようになります。 [source,shell] .... % export EDITOR="/usr/local/bin/emacs" .... -ほとんどのシェルでは、 コマンドライン中の変数名の前に `$` 文字を置くことで、 環境変数を展開させることができます。 たとえば、 `echo $TERM` は `$TERM` が セットされている内容を表示します。 それはシェルが `$TERM` を展開して `echo` に渡しているからです。 +現在の設定を確認するために、コマンドライン中の変数名の前に `$` 文字を置くことで、環境変数を展開させることができます。 +たとえば、`echo $TERM` は `$TERM` が セットされている内容を表示します。 -シェルはさまざまな特殊文字を、特別なデータを表すものとして扱います。 その特殊文字はメタキャラクタと呼ばれます。 もっとも一般的なものは `\*` で、 これはファイル名に含まれる、あらゆる文字を表します。 これらの特殊なメタキャラクタはファイル名の展開に使われます。 たとえば、`echo *` と入力すると `ls` と入力したのとほとんど同じ結果を得られます。 これはシェルが `*` とマッチするすべてのファイルを 受け取って `echo` のコマンドラインに渡し、表示するからです。 +シェルは特殊文字を、特別なデータを表すものとして扱います。 +その特殊文字はメタキャラクタと呼ばれます。 +もっとも一般的なメタキャラクタは `\*` で、これはファイル名に含まれる、あらゆる文字を表します。 +メタキャラクタはファイル名の展開に使われます。 +たとえば、`echo *` と入力すると `ls` と入力したのとほとんど同じ結果を得られます。 +これはシェルが `*` とマッチするすべてのファイルを受け取って `echo` はコマンドラインでそれらを表示するからです。 -これらの特殊文字をシェルに解釈させないようにするため、 特殊文字の前にバックスラッシュ文字 (`\`) を置くことができます。 `echo $TERM` は、 あなたの端末が何にセットされているかを表示します。 `echo \$TERM` は `$TERM` と そのまま表示します。 +特殊文字をシェルに解釈させないようにするため、特殊文字の前にバックスラッシュ文字 (`\`) を置いてエスケープしてください。 +例えば `echo $TERM` は端末の設定を表示し、`echo \$TERM` は `$TERM` とそのまま表示します。 [[changing-shells]] === シェルの変更 -シェルを変更する一番簡単な方法は `chsh` コマンドを使うことです。 `chsh` を実行すると 環境変数 `EDITOR` で示されたエディタが立ち上がります。 環境変数をセットしていなかった時は `vi` が立ち上がります。 "Shell:" の行を適宜変更してください。 +デフォルトのシェルを変更する一番簡単な方法は `chsh` を使うことです。 +このコマンドを実行すると、環境変数 `EDITOR` で示されたエディタ (デフォルトでは man:vi[1] が設定されている) が立ち上がります。 +`Shell:` の行を変更するシェルの絶対パスに変更してください。 -`chsh` に `-s` オプションをつけると、 エディタを起動せずにシェルを変更することが可能です。 たとえば、シェルを `bash` に変えたいなら、次のようにしてください。 +代わりに `chsh -s` を使うと、エディタを起動せずにシェルを変更できます。 +たとえば、シェルを `bash` に変えたいなら、次のようにしてください。 [source,shell] .... % chsh -s /usr/local/bin/bash .... +プロンプトに対してパスワードを入力し、kbd:[Return] を押すと、シェルが変更されます。 +新しいシェルを使うには、一度ログオフしてから再ログインしてください。 + [NOTE] ==== -使おうと思っているシェルは__必ず__[.filename]##/etc/shells## 中に書かれているものでなければなりません。 シェルを crossref:ports[ports,Ports Collection] からインストールしていたのであれば、すでにそれは行なわれていますが、 手動でインストールした場合は、それを忘れずに行ってください。 - -たとえば、`bash` を手動で [.filename]#/usr/local/bin# にインストールした場合 以下のようにする必要があります。 +使おうと思っているシェルは__必ず__ `/etc/shells` 中に書かれていなければなりません。 +シェルを crossref:ports[ports,アプリケーションのインストール - packages と ports] で説明されている FreeBSD の Ports Collection からインストールしたのであれば、自動的にこのファイルに追加されています。 +もし書かれていなければ、以下のコマンドで、パスをシェルのパスに置き換えて使って追加してください。 [source,shell] .... -# echo "/usr/local/bin/bash" >> /etc/shells +# echo /usr/local/bin/bash >> /etc/shells .... -そして `chsh` を実行してください。 +その後 man:chsh[1] を実行してください。 ==== -[[editors]] -== テキストエディタ +=== 高度なシェルの機能 -さまざまな FreeBSD の設定は、テキストファイルを編集することで行われます。 そのため、テキストエディタの扱いに慣れると良いでしょう。 FreeBSD には、基本システムの一部として二、三提供されるものと、 Ports Collection から利用できる、たくさんのテキストエディタが用意されています。 +UNIX(R) のシェルは単なるコマンドインタプリタではなく、ユーザが実行したコマンドの出力をリダイレクトしたり、入力をリダイレクトすることによりコマンドをお互いに繋げることで、最終的なコマンドの出力結果を改良できます。 +この機能をビルトインコマンドとともに用いることで、ユーザは最大化された効率の環境を入手できます。 -最も学習が簡単なエディタは、 easy editor の略で ee と呼ばれるものです。 ee を立ち上げるには、コマンドラインから `ee _filename_` と入力します。 ここで _filename_ は、 編集しようとしているファイルの名前です。 たとえば、[.filename]#/etc/rc.conf# を編集するには `ee /etc/rc.conf` と入力します。 一旦 `ee` の中に入れば、 エディタの機能を操作するコマンドはすべてディスプレイの上部に 表示されています。キャレット `^` 文字は キーボードの kbd:[Ctrl] キーを意味しますので、 `^e` はキーのコンビネーション kbd:[Ctrl+e] を押すという意味になります。 ee を終了するには kbd:[Esc] キーを押し、 そして leave editor を選びます。 ファイルが更新されていたときは、 エディタは変更をセーブするかどうかプロンプトを出します。 +シェルのリダイレクト機能を使うことで、コマンドの出力や入力を別のコマンドに送ったり、ファイルに送ることができます。 +たとえば、 man:ls[1] コマンドの出力をキャプチャするには、 +出力をファイルにリダイレクトしてください。 +以下はその例です。 -FreeBSD には、基本システムの一部として vi、 一方 Emacs や vim といった他のエディタは Ports Collection の一部として、 より強力なテキストエディタが用意されています ([.filename]#editors/emacs#, [.filename]#editors/vim#)。 これらのエディタはやや学習が複雑ですが、より強力で高い機能性を提供します。 しかし、あなたが多量のテキストを編集することを考えているなら、 vim や Emacs といった強力なエディタを習得することは、 より多くの時間を節約することでしょう。 +[source,shell] +.... +% ls > directory_listing.txt +.... -[[basics-devices]] -== デバイスとデバイスノード +実行すると、現在の作業ディレクトリにあるファイルの一覧が `directory_listing.txt` に出力されます。 +man:sort[1] のようなコマンドは、入力を読み込むことができます。 +先ほど得たファイルの一覧をソートするには、入力元をファイルにリダイレクトしてください。 -デバイスとはシステム上のハードウェアに関するものに対してよく使われる用語で、 ディスクやプリンタ、グラフィックカードやキーボードが含まれます。 FreeBSD が起動するとき、FreeBSD が表示しているものの大部分は検出されたデバイスです。 [.filename]#/var/run/dmesg.boot# を眺めれば起動メッセージを読み直すことができます。 +[source,shell] +.... +% sort < directory_listing.txt +.... -例えば、[.filename]#acd0# は最初の IDE CDROM ドライブで、[.filename]#kbd0# はキーボードを表します。 +入力された内容はソートされ画面に出力されます。 +この出力を他のファイルにリダイレクトするには、リダイレクトの向きを混ぜるように man:sort[1] の出力をリダイレクトしてください。 -UNIX(R) オペレーティングシステムにおけるデバイスのほとんどは、 デバイスノードと呼ばれる [.filename]#/dev# ディレクトリにあるスペシャルファイルを通してアクセスしなければなりません。 +[source,shell] +.... +% sort < directory_listing.txt > sorted.txt +.... -=== デバイスノードを作成する +これまでの例では、ファイルディスクリプタを用いてコマンドに対しリダイレクトを行っています。 +すべての UNIX(R) システムは標準入力 (stdin)、標準出力 (stdout) および標準エラー (stderr) といったファイルディスクリプタを持っています。 +それぞれに対象があり、 +入力はキーボードまたはマウスなどの入力を提供するものが対象、出力はスクリーンであったりプリンタ用紙が対象です。 +また、エラーは診断やエラーメッセージに用いられるものが対象です。 +これらは、I/O ベースのファイルディスクリプタ、時にはストリームと考えられます。 -新しいデバイスをシステムにつけ足したり、 追加デバイスのサポートをコンパイルして加えたりするときは、 デバイスノードを作成しなければなりません。 +これらのディスクリプタを使用することで、シェルは出力と入力についてさまざまなコマンドを経由させ、また、ファイルに対して出力し、もしくはファイルから読み込むようにリダイレクトできます。 +リダイレクトの他の方法は、パイプの機能です。 -==== `DEVFS` (デバイスファイルシステム: Device File System) +UNIX(R) のパイプ記号 "|" は、コマンドの出力を他のプログラムに直接渡します。 +基本的には、パイプはコマンドの標準出力を他のコマンドの標準出力に渡します。 +以下はその例です。 -デバイスファイルシステム `DEVFS` は、 グローバルファイルシステム名前空間の中のカーネルデバイス名前空間へのアクセスを提供します。 デバイスノードを作成したり変更したりするのではなく、 `DEVFS` がこの特別なファイルシステムを管理するのです。 +[source,shell] +.... +% cat directory_listing.txt | sort | less +.... -詳しくは man:devfs[5] マニュアルページをご覧ください。 +この例では、`directory_listing.txt` の内容がソートされ、その結果が man:less[1] に渡されます。 +このコマンドを実行すると、出力がスクロールして画面から見えなくなることをさけることができて、ユーザは出力を自分のペースでスクロールできます。 -[[basics-more-information]] -== さらに詳しい情報を得るには... +[[editors]] +== テキストエディタ -[[basics-man]] -=== オンラインマニュアル +FreeBSD の設定の多くは、テキストファイルの編集で行われます。 +そのため、テキストエディタの扱いに慣れると良いでしょう。 +FreeBSD には、基本システムの一部として二、三提供されるものと、Ports Collection から利用できる、たくさんのテキストエディタが用意されています。 -FreeBSD についてのもっとも包括的な文書は、 マニュアルページの形式になっているものです。 FreeBSD システム上のほとんどすべてのプログラムには、 基本的な操作方法とさまざまな引数を説明しているリファレンスマニュアルが添付されています。 これらのマニュアルは `man` コマンドで見ることができます。`man` コマンドの使い方は簡単です。 +学習が簡単なエディタは、 easy editor の略で man:ee[1] と呼ばれるものです。 +このエディタを立ち上げるには、`ee _filename_` と入力してください。 +ここで _filename_ は、 編集しようとしているファイルの名前です。 +一旦このコマンドの中に入れば、 エディタの機能を操作するコマンドはすべてディスプレイの上部に表示されています。 +キャレット (`^`) は kbd:[Ctrl] を意味するので、`^e` は kbd:[Ctrl+e] を押すという意味になります。 +man:ee[1] を終了するには kbd:[Esc] を押し、そしてメインメニューから "leave editor" オプションを選択してください。 +ファイルが更新されていたときは、エディタは変更をセーブするかどうかプロンプトを出します。 + +FreeBSD には、ベースシステムの一部として man:vi[1] といったより強力なテキストエディタが用意されています。 +package:editors/emacs[] および package:editors/vim[] といった他のエディタは Ports Collection の一部として用意されています。 +これらのエディタはやや学習が複雑ですが、より高い機能性を提供します。 +しかし、あなたが多量のテキストを編集することを考えているなら、 vim や Emacs といった強力なエディタを習得することは、 より多くの時間を節約することでしょう。 + +ファイルを編集したり、文字入力を必要とするようなアプリケーションの多くは、自動的にテキストエディタを起動します。 +<<shells>> の節で説明したように、デフォルトのエディタを変更するには `EDITOR` 環境変数に希望するエディタを設定してください。 + +[[basics-devices]] +== デバイスとデバイスノード + +デバイスとはシステム上のハードウェアに関するものに対してよく使われる用語で、ディスクやプリンタ、グラフィックカードやキーボードが含まれます。 +FreeBSD が起動するとき、ブートメッセージの大部分は検出されたデバイスについてのものです。 +ブートメッセージは `/var/run/dmesg.boot` に保存されています。 + +各デバイスはデバイス名と番号を持ちます。 +例えば、`ada0` は最初の SATA CD-ROM ドライブで、`kbd0` はキーボードを表します。 + +FreeBSD におけるほとんどのデバイス、デバイスノードと呼ばれる `/dev` にあるスペシャルファイルを通してアクセスしなければなりません。 + +[[basics-more-information]] +== マニュアルページ + +FreeBSD についてのもっとも包括的な文書は、 マニュアルページの形式になっているものです。 +FreeBSD システム上のほとんどすべてのプログラムには、基本的な操作方法と利用可能な引数を説明しているリファレンスマニュアルが添付されています。 +これらのマニュアルは `man` を使って見ることができます。 [source,shell] .... % man コマンド名 .... -`コマンド名` のところには、知りたいコマンドの名前を入れます。 たとえば `ls` コマンドについて知りたい場合には、 次のように入力します。 +ここで `コマンド名` のところには、知りたいコマンドの名前を入れます。 +たとえば man:ls[1] について知りたい場合には、次のように入力します。 [source,shell] .... % man ls .... -オンラインマニュアルは、 セクション番号で分類されています。 +マニュアルは、トピックごとにセクション番号で分類されています。 +FreeBSD では、以下のセクションがあります。 . ユーザコマンド . システムコールとエラー番号 @@ -1072,50 +1849,55 @@ FreeBSD についてのもっとも包括的な文書は、 マニュアルペ . ゲームや娯楽 . さまざまな情報 . システムの管理と操作のためのコマンド -. カーネル開発者のための情報 +. システムカーネルインタフェース -時折、 同じトピックがオンラインマニュアルの複数のセクションに記載されている場合があります。 たとえば、`chmod` ユーザコマンドと `chmod()` システムコールの場合がそれに該当します。 この場合、`man` コマンドにセクション番号を与えることで、 どちらを参照したいかを指定することができます。 +時折、 同じトピックがオンラインマニュアルの複数のセクションに記載されている場合があります。 +たとえば、`chmod` ユーザコマンドと `chmod()` システムコールの場合がそれに該当します。 +man:man[1] にセクション番号を与えることで、 表示したいセクションを指定できます。 [source,shell] .... % man 1 chmod .... -上のようにすれば、 ユーザコマンド `chmod` のマニュアルページが表示されます。 オンラインマニュアルの特定セクションへの参照は、 慣習的に書かれている文書で括弧の中に示されます。 すなわち、man:chmod[1] は `chmod` ユーザコマンドを、man:chmod[2] はシステムコールの方を示しています。 +上のようにすれば、ユーザコマンド man:chmod[1] のマニュアルページが表示されます。 +オンラインマニュアルの特定セクションへの参照は、慣習的に書かれている文書で括弧の中に示されます。 +すなわち、man:chmod[1] はユーザコマンドを、man:chmod[2] はシステムコールの方を示しています。 -コマンドの名前を知っていて、 単純にその使い方を知りたい場合はここまでの説明で十分でしょう。 しかし、 もしコマンドの名前を思い出せない場合にはどうしたら良いのでしょうか? `man` に `-k` スイッチをつければ、 コマンド解説 (description) の文章から、 指定したキーワードを検索することができます。 +マニュアルページの名前を知らない場合には、`man -k` を使ってマニュアルページの解説 (description) からキーワードを検索してください。 [source,shell] .... % man -k mail .... -このコマンドにより、 "mail" というキーワードをコマンド解説に含むコマンドの一覧が表示されます。 実際には、これは `apropos` コマンドを使う場合と同等の機能です。 +このコマンドは、"mail" というキーワードをコマンド解説に含むコマンドの一覧を表示します。 +これは man:apropos[1] と同等の機能です。 -それでは、[.filename]#/usr/bin# にあるさまざまなコマンドすべてを見ていて、 それらが実際にどう働くのかが、まったく見当もつかないときには どうしたら良いでしょう? そのときは単純に、 +`/usr/sbin` にあるすべてのコマンドの説明を読むには、以下のように実行してください。 [source,shell] .... -% cd /usr/bin -% man -f * +% cd /usr/sbin +% man -f * | more .... -とするか、あるいは同じ働きをする +または、以下を実行してください。 [source,shell] .... -% cd /usr/bin -% whatis * +% cd /usr/sbin +% whatis * |more .... -としてください。 - [[basics-info]] === GNU の Info ファイル -FreeBSD には Free Software Foundation (FSF) によるアプリケーションや ユーティリティがたくさん含まれています。 これらのプログラムには、マニュアルページに加えて `info` ファイルと呼ばれる ハイパーテキスト形式の文書が付属しています。 この文書は `info` コマンド、 あるいは emacs をインストールしているなら emacs の info モードで読むことができます。 +FreeBSD には Free Software Foundation (FSF) によるアプリケーションやユーティリティが含まれています。 +これらのプログラムには、マニュアルページに加えて `info` ファイルと呼ばれるハイパーテキスト形式の文書が付属しています。 +この文書は man:info[1]、あるいは package:editors/emacs[] をインストールしているなら emacs の info モードで読むことができます。 -man:info[1] コマンドを使うには、単に次のように入力します。 +man:info[1] を使うには、次のように入力してください。 [source,shell] .... diff --git a/documentation/content/ja/books/handbook/bibliography/_index.adoc b/documentation/content/ja/books/handbook/bibliography/_index.adoc index 352202bdfe..be87083525 100644 --- a/documentation/content/ja/books/handbook/bibliography/_index.adoc +++ b/documentation/content/ja/books/handbook/bibliography/_index.adoc @@ -4,8 +4,9 @@ part: パートV. 付録 prev: books/handbook/mirrors next: books/handbook/eresources showBookMenu: true -weight: 29 -path: "/books/handbook/" +weight: 28 +params: + path: "/books/handbook/bibliography/" --- [appendix] diff --git a/documentation/content/ja/books/handbook/book.adoc b/documentation/content/ja/books/handbook/book.adoc index 9598e78b89..004a57d9d7 100644 --- a/documentation/content/ja/books/handbook/book.adoc +++ b/documentation/content/ja/books/handbook/book.adoc @@ -44,24 +44,7 @@ ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] -[.abstract-title] -概要 - -FreeBSD へようこそ! このハンドブックは __FreeBSD {rel130-current}-RELEASE__ および __FreeBSD {rel123-current}-RELEASE__ のインストールと日常での使い方について記述したものです。 -本ハンドブックはさまざまな人々による編集の成果で、現在も改編作業中です。 -いま存在するセクションの中には情報が古くなってしまっているものがあります。 -もし、この文書を新しくしたり、新しい情報の追加に協力したいとお考えなら、 {freebsd-doc} まで電子メールを (英語で) 送ってください。 - -このハンドブックの最新バージョンは、いつでも https://www.FreeBSD.org/ja/[FreeBSD ウェブサイト] から入手できます。 -この文書の以前のバージョンは https://docs.FreeBSD.org/doc/[https://docs.FreeBSD.org/doc/] から入手できます。 -他のさまざまな文書形式、圧縮形式は https://download.freebsd.org/doc/[FreeBSD サーバ] や数多くの link:./mirrors#mirrors-http[ミラーサイト] からダウンロードできます。 -このハンドブックの書籍版 (英語版) は、 https://www.freebsdmall.com/[FreeBSD Mall] から購入できます。 -ハンドブックおよび他の文書は、link:https://www.FreeBSD.org/ja/search/[検索ページ] で検索できます。 - -FreeBSD ハンドブック日本語版の作成は FreeBSD 日本語ドキュメンテーションプロジェクト (FreeBSD doc-jp) がおこなっています。 -ハンドブックの日本語訳に関することは FreeBSD {doc-jp} において日本語で議論されています。 - -文書の日本語訳に関するお問い合わせや、 文書の原文に関する問い合わせをしたいが英語が得意でないという方は FreeBSD {doc-jp} まで、日本語でコメントをお寄せください。 +include::{chapters-path}introduction.adoc[] ''' @@ -106,8 +89,6 @@ include::{chapters-path}config/_index.adoc[leveloffset=+1] include::{chapters-path}boot/_index.adoc[leveloffset=+1] -include::{chapters-path}users/_index.adoc[leveloffset=+1] - include::{chapters-path}security/_index.adoc[leveloffset=+1] include::{chapters-path}disks/_index.adoc[leveloffset=+1] @@ -140,4 +121,8 @@ include::{chapters-path}eresources/_index.adoc[leveloffset=+1] include::{chapters-path}pgpkeys/_index.adoc[leveloffset=+1] +// include::{chapters-path}glossary.adoc[leveloffset=+1] + +// include::{chapters-path}colophon.adoc[leveloffset=+1] + :sectnums: diff --git a/documentation/content/ja/books/handbook/boot/_index.adoc b/documentation/content/ja/books/handbook/boot/_index.adoc index aa9f28b298..146eefc5c0 100644 --- a/documentation/content/ja/books/handbook/boot/_index.adoc +++ b/documentation/content/ja/books/handbook/boot/_index.adoc @@ -2,10 +2,13 @@ title: 第12章 FreeBSD の起動のプロセス part: パートIII. システム管理 prev: books/handbook/config -next: books/handbook/users +next: books/handbook/security +description: FreeBSD のブートプロセスおよび FreeBSD カーネルがスタートし、デバイスを検出し、init を起動するまでに起きることすべてを含む FreeBSD の起動プロセスのカスタマイズ方法について説明します。 +tags: ["boot", "boot process", "device hints", "x86", "amd64", "MBR", "GPT", "UEFI", "bsdlabel", "boot0", "Single-User Mode", "Multi-User Mode"] showBookMenu: true weight: 16 -path: "/books/handbook/" +params: + path: "/books/handbook/boot/" --- [[boot]] @@ -79,7 +82,16 @@ x86 ハードウェアでは、基本入出力システム (Basic Input/Output S FreeBSD は古い標準の MBR、 または新しい GUID Partition Table (GPT) から起動できます。 GPT パーティションは、Unified Extensible Firmware Interface (UEFI) に対応したコンピュータで良く用いられます。 しかしながら、FreeBSD はレガシーな BIOS にのみに対応したコンピュータからも、man:gptboot[8] により、 GPT パーティションから起動できます。 UEFI からの直接の起動への対応は進行中です。 ==== -MBR 内部のコードは、 一般的に_ブートマネージャ_と呼ばれます。 とりわけユーザとの対話がある場合にそう呼ばれます。 通常ブートマネージャのもっと多くのコードが、 ディスクの最初のトラック、またはファイルシステム上におかれます。 ブートマネージャの例としては、Boot Easy とも呼ばれる FreeBSD 標準のブートマネージャの boot0、 多くの Linux(R) ディストリビューションが採用している Grub 等があります。 +MBR 内部のコードは、 一般的に _ブートマネージャ_ と呼ばれます。 +とりわけユーザとの対話がある場合にそう呼ばれます。 +通常ブートマネージャのもっと多くのコードが、ディスクの最初のトラック、またはファイルシステム上におかれます。 +ブートマネージャの例としては、Boot Easy とも呼ばれる FreeBSD 標準のブートマネージャの boot0、多くの Linux(R) ディストリビューションが採用している GNU Grub 等があります。 + +[NOTE] +==== +// There is extref:{faq}[a frequently asked question] about GRUB. Beyond the answer there, // +GRUB のユーザは https://www.gnu.org/software/grub/grub-documentation.html[GNU-provided documentation] を参照してください。 +==== ディスク上にインストールされているオペレーティングシステムが 1 つの時は、MBR はディスク上の最初の起動可能な (アクティブな) スライスを探し、 そのスライスにあるコードを起動してオペレーティングシステムの残りをロードします。 ディスク上に複数のオペレーティングシステムが存在しているのなら、 複数のオペレーティングシステムの一覧を表示できて、 起動するオペレーティングシステムを選択できるような、 別のブートマネージャをインストールすることもできます。 diff --git a/documentation/content/ja/books/handbook/bsdinstall/_index.adoc b/documentation/content/ja/books/handbook/bsdinstall/_index.adoc index 4b32e180c3..50b4a24046 100644 --- a/documentation/content/ja/books/handbook/bsdinstall/_index.adoc +++ b/documentation/content/ja/books/handbook/bsdinstall/_index.adoc @@ -7,7 +7,8 @@ description: FreeBSD のインストール方法、最小ハードウェア要 tags: ["bsdinstall", "FreeBSD のインストール", "必要要件", "チュートリアル", "gガイド"] showBookMenu: true weight: 4 -path: "/books/handbook/" +params: + path: "/books/handbook/bsdinstall/" --- [[bsdinstall]] @@ -51,102 +52,75 @@ endif::[] [[bsdinstall-synopsis]] == この章では -FreeBSD を入手して実行する方法は、環境に依存します。 以下のようにさまざま方法が用意されています。 +FreeBSD は、amd64, ARM(R), RISC-V(R), および PowerPC(R) 等のさまざまなアーキテクチャに対応しています。 -* ダウンロードして仮想環境にインストールするための仮想マシンイメージ。 これらのイメージは、link:https://www.freebsd.org/ja/where/[FreeBSD を入手する] ページからダウンロードできます。 仮想マシンのイメージとして KVM ("qcow2"), VMWare ("vmdk"), Hyper-V ("vhd") および広くサポートされている raw デバイスイメージが用意されています。 これらはインストール用のイメージではなく、 すでに設定済みの ("すでにインストールされた") インスタンスで、すぐに起動して、 インストール後の作業を行うことができます。 -* Amazon link:https://aws.amazon.com/marketplace/pp/prodview-ukzmy5dzc6nbq[AWS Marketplace], link:https://azuremarketplace.microsoft.com/en-US/marketplace/apps/thefreebsdfoundation.freebsd-13_0[Microsoft Azure Marketplace] および link:https://console.cloud.google.com/marketplace/product/freebsd-cloud/freebsd-13[Google Cloud Platform] において、それぞれのホスティングサービスで実行可能な仮想マシンイメージを利用できます。 -Azure での FreeBSD のデプロイについての詳細な情報については、 link:https://docs.microsoft.com/en-us/azure/virtual-machines/linux/freebsd-intro-on-azure[Azure Documentation] の関連する章をご覧ください。 -* Raspberry Pi または BeagleBone Black といった組み込みシステム用に、SD カードイメージが用意されています。 これらのイメージは、 link:https://www.freebsd.org/where/[FreeBSD を入手する] ページからダウンロードしてください。 これらのファイルをダウンロードしたら、展開し、 ボードが起動するように raw イメージとして SD カードに書き込んでください。 -* FreeBSD を通常のデスクトップ、ラップトップ、 サーバシステムのハードディスク上にインストールするためのインストールイメージ。 +インストールまたは直接 FreeBSD を実行するためのイメージは、アーキテクチャおよびプラットフォームごとに link:https://www.freebsd.org/ja/where/[ダウンロード] できます。 -この章では、4 番目のケースに関連して、 テキストベースの bsdinstall と呼ばれるインストールプログラムの使い方について説明します。 +利用できるイメージのタイプは以下の通りです。 -この章で記載されているインストールの手順は、 i386(TM) および AMD64 アーキテクチャを対象にしています。 必要に応じて、他のプラットフォームに特有の手順についても明記しています。 インストーラとこの文書で記載している内容には、 いくらかズレがあることがありますので、 この章を正確で忠実な手順書としてではなく、 一般的なガイドとしてご利用ください。 +* `qcow2`, `vmdk`, `vhd` および raw デバイスイメージといった仮想マシンのディスクイメージ。これらはインストール用のイメージではなく、FreeBSD がすでにインストールされたインスタンスで、すぐに起動して、インストール後の作業を行うことができます。仮想マシンのイメージは、クラウド環境でも使われます。 +* Raspberry Pi のような組み込みシステム用の SD カードイメージ。これらのファイルをダウンロードしたら、展開し、ボードが起動するように raw イメージとして SD カードに書き込んでください。 +* ISO または USB デバイスから起動して、FreeBSD を通常のデスクトップ、ラップトップ、サーバシステムのドライブ上にインストールするためのインストールイメージ。 -[NOTE] -==== -グラフィカルなインストーラで FreeBSD をインストールしたいと考えているユーザは、 -https://ghostbsd.org[GhostBSD], https://www.midnightbsd.org[MidnightBSD] または https://nomadbsd.org/[NomadBSD] に興味を持たれることでしょう。 -==== +この章では、3 番目のケースについて、bsdinstall と呼ばれるテキストベースのインストールプログラムを用いた FreeBSD のインストール方法について説明します。 この章では、以下について説明します。 -* 最小ハードウェア要件、および FreeBSD が対応しているアーキテクチャについて。 -* FreeBSD インストールメディアの作り方。 +* FreeBSD イメージの入手方法および FreeBSD インストールメディアの作り方。 * bsdinstall の起動方法。 * bsdinstall が聞いてくる質問がどのような意味であり、 またどのように答えれば良いか。 * インストールに失敗した時の問題の解決方法。 * インストールを確定する前に、 FreeBSD の live 版へアクセスする方法。 -この章を読む前に、以下のことを確認して下さい。 - -* インストールしようとしているバージョンに付属しているサポートハードウェア一覧を読み、 システムのハードウェアがサポートされているかどうかを確認して下さい。 - [[bsdinstall-hardware]] == 最小ハードウェア要件 -FreeBSD をインストールするために必要なハードウェア要件は、 アーキテクチャごとに異なります。FreeBSD の各リリースが対応しているハードウェアアーキテクチャおよびデバイスの一覧は、 link:https://www.FreeBSD.org/ja/releases/[FreeBSD リリース情報] のページにまとめられています。 アーキテクチャごとのイメージの選択に関しては、 link:https://www.FreeBSD.org/ja/where/[FreeBSD ダウンロードページ] でも説明されています。 - -FreeBSD をインストールするためには、 少なくとも 96 MB の RAM および 1.5 GB のハードディスクの空き容量が必要です。 しかしながら、このような少ないメモリやディスク容量のシステムは、 組み込みアプライアンスのような、 カスタムアプリケーションでのみ適しており、 一般使用のデスクトップのシステムでは、 より多くのリソースが必要となります。 2-4 GB RAM そして少なくとも 8 GB のハードディスク容量を検討してください。 - -以下は、各アーキテクチャごとのプロセッサの必要要件です。 - -amd64:: -デスクトップおよびラップトップのプロセッサとしては最も一般的で、 最近のほとんどのシステムで使われています。 Intel(R) は Intel64 と呼び、 他の製造ベンダはしばしば x86-64 と呼びます。 -+ -amd64 互換のプロセッサの例は、 AMD Athlon(TM)64, AMD Opteron(TM), マルチコアの Intel(R) Xeon(TM) および Intel(R) Core(TM) 2 以降のプロセッサです。 - -i386:: -古いデスクトップおよびラップトップでは、 この 32 ビットの X86 アーキテクチャが用いられています。 -+ -浮動小数点演算ユニットを持つ i386 互換のほとんどのプロセッサに対応しています。 486 以上のすべての Intel(R) プロセッサに対応しています。 -ただし、プロジェクトで公開されているバイナリは、686 プロセッサでコンパイルされているので、486 および 586 システムに特化したビルドが必要となることがあります。 -+ -FreeBSD は、Physical Address Extensions (PAE) に対応した CPU でこの機能を利用可能です。 PAE 機能を有効にしたカーネルでは、 4 ギガバイト以上のメモリを認識し、システムが利用できます。 しかしながら、PAE を使うと、 デバイスドライバや FreeBSD の他の機能に制限を課してしまいます。 - -arm64:: -ほとんどの組み込み用のボードは、64 ビットの ARM コンピュータです。 -数多くの arm64 サーバに対応しています。 - -arm:: -古い armv7 ボードに対応しています。 - -powerpc:: -USB 内蔵のすべての New World ROM Apple(R) Mac(R) システムに対応しています。 複数の CPU を持つコンピュータは SMP に対応しています。 -+ -32-bit カーネルは、RAM の最初の 2 GB だけを利用できます。 +FreeBSD をインストールするために必要なハードウェア要件は、アーキテクチャおよびバージョンごとに異なります。 +FreeBSD の各リリースが対応しているハードウェアアーキテクチャおよびデバイスの一覧は、 link:https://www.FreeBSD.org/ja/releases/[FreeBSD リリース情報] のページにまとめられています。 +アーキテクチャごとに推奨される適切なイメージの選択に関しては、 link:https://www.FreeBSD.org/ja/where/[FreeBSD ダウンロードページ] でも説明されています。 [[bsdinstall-pre]] == インストール前に行う作業 -システムが FreeBSD のインストールにおける最小ハードウェア要件を満たしていることを確認したら、 インストールファイルをダウンロードして、 インストール用のメディアを用意してください。 その前に、以下のチェックリストを確認して、 システムをインストールする準備ができていることを確認してください。 +システムが FreeBSD のインストールのための最小ハードウェア要件を満たしていることを確認したら、インストールファイルをダウンロードして、インストール用のメディアを用意してください。 +その前に、以下のチェックリストを確認して、システムをインストールする準備ができていることを確認してください。 [.procedure] +==== . 重要なデータのバックアップ + -オペレーティングシステムをインストールする前に、 _常に_ 価値のあるすべてのデータを最初にバックアップしてください。 インストールしようとしているシステムにはバックをとらないでください。 そのかわり、USB ドライブ、 ネットワーク上の他のシステム、 もしくはオンラインのバックアップサービスといったリムーバルディスクにデータを保存してください。 インストールを始める前に、バックアップを調べて、 必要なすべてのファイルがバックアップに含まれていることを確認してください。 インストーラがシステムのディスクをフォーマットしてしまうと、 ディスクに保存されていたすべてのデータは失われます。 +オペレーティングシステムをインストールする前に、 *常に* 価値のあるすべてのデータを最初にバックアップしてください。 +インストールしようとしているシステムにはバックアップを保存しないでください。 +そのかわり、USB ドライブ、ネットワーク上の他のシステム、もしくはオンラインのバックアップサービスといったリムーバルディスクにデータを保存してください。 +インストールを始める前に、バックアップを調べて、必要なすべてのファイルがバックアップに含まれていることを確認してください。 +インストーラがシステムのディスクをフォーマットしてしまうと、ディスクに保存されていたすべてのデータは失われます。 . FreeBSD をインストールする場所の決定 + インストールするオペレーティングシステムが FreeBSD のみであれば、 このステップは飛ばすことができます。 しかし、ディスクに FreeBSD と 他のオペレーティングシステムを共存させる必要がある場合には、FreeBSD が利用するディスクおよびパーティションを決める必要があります。 + -i386 および amd64 アーキテクチャでは、 二つのパーティションスキームのどちらかを使って、 ハードディスクを複数の塊に分割することができます。 伝統的な _Master Boot Record_ (MBR) では、 ディスク 1 台あたり最大 4 つの _プライマリパーティション_ をパーティションテーブルに持つことができます 歴史的な理由により、FreeBSD では、これらのパーティションのことを _スライス_ と呼びます。 プライマリパーティションの 1 つに、 複数の _論理パーティション_ を含む _拡張パーティション_ を作成できます。 _GUID Partition Table_ (GPT) は、 ディスクをパーティションに分ける簡単で新しい方法です。 一般的な GPT の実装では、 1 つのディスクに 128 個までのパーティションの作成が可能であり、 論理パーティションは必要ありません。 +i386 および amd64 アーキテクチャでは、 二つのパーティションスキームのどちらかを使って、 ハードディスクを複数の塊に分割することができます。 +伝統的な _Master Boot Record_ (MBR) では、ディスク 1 台あたり最大 4 つの _プライマリパーティション_ をパーティションテーブルに持つことができます。 +歴史的な理由により、FreeBSD では、これらのパーティションのことを _スライス_ と呼びます。 プライマリパーティションの 1 つに、複数の _論理パーティション_ を含む _拡張パーティション_ を作成できます。 +_GUID Partition Table_ (GPT) は、ディスクをパーティションに分ける簡単で新しい方法です。 +一般的な GPT の実装では、1 つのディスクに 128 個までのパーティションの作成が可能であり、論理パーティションは必要ありません。 + FreeBSD のブートローダは、プライマリまたは GPT パーティションのどちらかを必要とします。 ディスク上のプライマリ、もしくは GPT パーティションがすべて使われているのであれば、 そのひとつを FreeBSD のために開放してください。 ディスクにあるデータを消去せずにパーティションを作成するには、 パーティションサイズを変更するツールを使って今あるパーティションのサイズを小さくし、 空いたスペースに新しいパーティションを作成してください。 + -パーティションサイズを変更するフリーや商用のツールは、 link:http://en.wikipedia.org/wiki/List_of_disk_partitioning_software[http://en.wikipedia.org/wiki/List_of_disk_partitioning_software] にまとめられています。 -GParted Live (link:https://gparted.org/livecd.php[https://gparted.org/livecd.php]) は、GParted パーティションエディタを含む完全なライブ CD です。 多くの Linux Live CD ディストリビューションでも GParted を利用できます。 +パーティションサイズを変更するためのフリーまたは商用のツールは、 link:https://en.wikipedia.org/wiki/List_of_disk_partitioning_software[List of disk partitioning software wikipedia entry] にまとめられています。 +link:https://gparted.org/livecd.php[GParted Live] は、GParted パーティションエディタを含むフリーのライブ CD です。 + [WARNING] -==== +====== ディスクパーティションを縮小するユーティリティは、 適切に用いるとパーティション用の空き容量を新しく安全に作成できます。 すでにあるパーティションを間違って選択してしまう可能性があるので、 ディスクのパーティションを変更する前に、 必ず重要なデータのバックアップをとり、 バックアップが正しくとれていることを検証してください。 -==== +====== + -ディスクパーティションごとに異なるオペレーティングシステムをインストールすることで、 一つのコンピュータに複数のオペレーティングシステムをインストールできます。 crossref:virtualization[virtualization,仮想化技術] を用いると、ディスクパーティションを変更することなく、 複数のオペレーティングシステムを同時に起動できます。 +ディスクパーティションごとに異なるオペレーティングシステムをインストールすることで、 一つのコンピュータに複数のオペレーティングシステムをインストールできます。link:https://docs.freebsd.org/en/books/handbook/virtualization/#virtualization[仮想化技術] を用いると、ディスクパーティションを変更することなく、複数のオペレーティングシステムを同時に起動できます。 . ネットワーク情報の収集 + FreeBSD のインストール方法によっては、ネットワークに接続し、 インストールファイルをダウンロードする必要があります。 インストールする方法に関わらず、インストール後に、 インストーラはシステムのネットワークインタフェースの設定をする機会を提供します。 + ネットワークに DHCP サーバがあると、 自動的にネットワークの設定情報を取得できます。 DHCP を利用できない環境では、 システムの以下のネットワーク情報について、 システム管理者かプロバイダにネットワーク情報を問い合わせる必要があります。 + .. IP アドレス .. サブネットマスク .. デフォルトゲートウェイの IP アドレス @@ -155,38 +129,69 @@ FreeBSD のインストール方法によっては、ネットワークに接続 . FreeBSD Errata の確認 + -FreeBSD プロジェクトでは FreeBSD の各リリースができる限り安定するよう努力していますが、 時々バグが発生してしまうことがあります。極まれに、 発生したバグがインストールプロセスに影響を与えることがあります。 これらの問題は発見され解決されると、 FreeBSD のウェブサイトの FreeBSD Errata (link:https://www.FreeBSD.org/releases/{rel130-current}R/errata/[https://www.freebsd.org/releases/{rel130-current}R/errata/]) に記載されます。 インストールに影響するような既知の問題が無いことを、 インストールする前に Errata で確認してください。 +FreeBSD プロジェクトでは FreeBSD の各リリースができる限り安定するよう努力していますが、 時々バグが発生してしまうことがあります。 +極まれに、発生したバグがインストールプロセスに影響を与えることがあります。 +これらの問題は発見され解決されると、FreeBSD の各バージョンごとに Errata ページに記載されます。 +インストールに影響するような既知の問題が無いことを、インストールする前に Errata で確認してください。 + -すべてのリリースに関する情報や Errata は、FreeBSD のウェブサイトの リリース情報の項 (link:https://www.FreeBSD.org/ja/releases/[https://www.freebsd.org/ja/releases/]) で確認できます。 +すべてのリリースに関する情報や Errata は、 link:https://www.FreeBSD.org/ja/releases/[リリース情報] のページで確認できます。 +==== [[bsdinstall-installation-media]] === インストールメディアの準備 FreeBSD のインストーラは、 他のオペレーティングシステムで実行できるようなプログラムではありません。 そのかわり、FreeBSD インストールファイルをダウンロードしたら、 ファイルタイプやサイズに合わせてメディア (CD, DVD または USB) に焼いてください。そして、挿入したメディアからインストールするように、 システムを起動してください。 -FreeBSD のインストールファイルは link:https://www.FreeBSD.org/ja/where/#download[www.freebsd.org/ja/where/#download] から入手できます。 各インストールファイルの名前は、FreeBSD のリリースバージョンおよびアーキテクチャ、ファイルタイプからなります。 たとえば、amd64 システムに DVD から FreeBSD 13.0 をインストールするには、 [.filename]##FreeBSD-13.0-RELEASE-amd64-dvd1.iso## をダウンロードして、ファイルを DVD に焼き、DVD を挿入してからシステムを起動してください。 +FreeBSD のインストールファイルは link:https://www.FreeBSD.org/ja/where/#download[FreeBSD ダウンロードページ] から入手できます。 +各インストールファイルの名前は、FreeBSD のリリースバージョンおよびアーキテクチャ、ファイルタイプから構成されます。 + +インストールファイルは、さまざまな形式で、man:xz[1] により圧縮されたファイルまたは圧縮されていないファイルが用意されています。 +用意されているフォーマットは、 コンピュータのアーキテクチャやメディアのタイプによって異なります。 + +インストールファイルの形式 -インストールファイルは、さまざまな形式で用意されています。 用意されているフォーマットは、 コンピュータのアーキテクチャやメディアのタイプによって異なります。 +* `*-bootonly.iso*`: インストーラのみを含む最小のインストールファイルです。 +インストールを行う間、インストーラは FreeBSD をインストールするために必要なファイルをダウンロードするため、ネットワーク接続が必要です。 +このファイルは、光学メディアに書き込む必要があります。 +* `*-disc1.iso*`: FreeBSD のインストールに必要となる、ソースおよび Ports Collection といったすべてのファイルが含まれています。 +このファイルは、光学メディアに書き込む必要があります。 +* `*-dvd1.iso*`: FreeBSD のインストールに必要となる、ソースおよび Ports Collection といったすべてのファイルが含まれています。 +インターネットに接続することなく、メディアのみでシステムのインストールを完了できるように、良く使われるウィンドウマネージャおよびアプリケーションをインストールするためのバイナリ package も含まれています。 +このファイルは、光学メディアに書き込む必要があります。 +* `*-memstick.img*`: FreeBSD のインストールに必要となる、ソースおよび Ports Collection といったすべてのファイルが含まれています。 +<<bsdinstall-usb>> で説明されている手順に従って、このファイルを USB スティックに書き込んでください。 +* `*-mini-memstick.img*`: `*-bootonly.iso*` と同じく、インストールファイルは含まれていないため、必要に応じてダウンロードする必要があります。 +インストールを行う間、ネットワーク接続が必要です。 +<<bsdinstall-usb>> の説明に従って、USB スティックに書き込んでください。 -[[bsdinstall-installation-media-uefi]] -UEFI (Unified Extensible Firmware Interface) で起動するコンピュータのために、 追加のインストールファイルも用意されています。 これらのファイルの名前には、[.filename]#uefi# という文字列が含まれています。 +イメージファイルをダウンロードしたら、同じディレクトリから少なくとも一つの _チェックサム_ ファイルをダウンロードしてください。 +2 つの _チェックサム_ ファイルが利用可能です。 +これのファイル名にはリリース番号とアーキテクチャ名がついています。 +たとえば `CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64` および `CHECKSUM.SHA512-FreeBSD-13.1-RELEASE-amd64` という名前がつけられます。 -ファイルの形式 +どちらかの (もしくは両方の) ファイルをダウンロードしたら、イメージファイルの _チェックサム_ を計算し、 _チェックサム_ ファイルに示されている値と比較してください。 +計算した _チェックサム_ は、2 つの異なるアルゴリズム (SHA256 および SHA512) に対応する適切なファイルと比較してください。 +FreeBSD では、_チェックサム_ のために man:sha256[1] および man:sha512[1] を提供しています。 +他のオペレーティングシステムでも同じようなプログラムを利用できます。 -* `-bootonly.iso`: インストーラのみを含む最小のインストールファイルです。 インストールを行う間、インストーラは FreeBSD をインストールするために必要なファイルをダウンロードするため、 ネットワーク接続が必要です。 このファイルは、CD を焼くためのアプリケーションを用いて、 CD に書き込む必要があります。 -* `-disc1.iso`: FreeBSD のインストールに必要となる、ソースおよび Ports Collection といったすべてのファイルが含まれています。 このファイルは、CD を焼くためのアプリケーションを用いて、 CD に書き込む必要があります。 -* `-dvd1.iso`: FreeBSD のインストールに必要となる、ソースおよび Ports Collection といったすべてのファイルが含まれています。 インターネットに接続することなく、 メディアのみでシステムのインストールを完了できるように、 良く使われるウィンドウマネージャおよびアプリケーションをインストールするためのバイナリ package も含まれています。 DVD を焼くためのアプリケーションを使って、 DVD に書き込む必要があります。 -* `-memstick.img`: FreeBSD のインストールに必要となる、ソースおよび Ports Collection といったすべてのファイルが含まれています。 以下の手順に従って、USB スティックに書き込んでください。 -* `-mini-memstick.img`: `-bootonly.iso` と同じく、 インストールファイルは含まれていないため、 必要に応じてダウンロードする必要があります。 インストールを行う間、ネットワーク接続が必要です。 <<bsdinstall-usb>> の説明に従って、 USB スティックに書き込んでください。 +FreeBSD での _チェックサム_ の検証は、以下のように man:sha256sum[1] (または man:sha512sum[1]) を使用して自動的に行うことができます。 -イメージファイルをダウンロードしたら、同じディレクトリから [.filename]#CHECKSUM.SHA256# をダウンロードしてください。 その後、イメージファイルの _チェックサム_ を計算してください。 FreeBSD では、この計算のために man:sha256[1] を提供しています。 `sha256 _イメージファイルの名前_` のように使用してください。 他のオペレーティングシステムでも同じようなプログラムを利用できます。 +[source,shell] +.... +% sha256sum -c CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64 FreeBSD-13.1-RELEASE-amd64-dvd1.iso +FreeBSD-13.1-RELEASE-amd64-dvd1.iso: OK +.... -計算したチェックサムと [.filename]#CHECKSUM.SHA256# に示されている値を比較してください。 チェックサムは完全に一致している必要があります。 もしチェックサムが一致しなければ、 イメージファイルは壊れているので、もう一度ダウンロードしてください。 +チェックサムは完全に一致している必要があります。 +もしチェックサムが一致しなければ、 イメージファイルが壊れている可能性があるので、もう一度ダウンロードしてください。 [[bsdinstall-usb]] ==== イメージファイルを USB に書き込む -[.filename]#\*.img# ファイルは、 完全なメモリスティックの内容の _イメージ_ です。これは、 通常のファイルのように対象のデバイスにコピーすることは _できません_。 USB スティックへ [.filename]#*.img# を書き込むためのアプリケーションは複数あります。 この節ではこのうちの二つのユーティリティについて説明します。 +`\*memstick.img` ファイルは、完全なメモリスティックの内容の _イメージ_ です。 +これは、通常のファイルのように対象のデバイスにコピーすることは _できません_。 +USB スティックへ `*.img` を書き込むためのアプリケーションは複数あります。 +この節ではこのうちの二つのユーティリティについて説明します。 [IMPORTANT] ==== @@ -195,11 +200,15 @@ UEFI (Unified Extensible Firmware Interface) で起動するコンピュータ [[bsdinstall-usb-dd]] [.procedure] -.Procedure: `dd` を使ってイメージを書き込む -[WARNING] -==== -この例では、イメージの書き込み先のターゲットデバイスとして、 [.filename]#/dev/da0# が使われています。 ここで使われるコマンドは、 指定したターゲットデバイスに存在しているデータを破壊してしまうので、 正しいデバイスが指定されていることに _細心の注意を払ってください_。 ==== +*Procedure. `dd` を使ってイメージを書き込む* + + +[WARNING] +====== +この例では、イメージの書き込み先のターゲットデバイスとして、`/dev/da0` が使われています。 +ここで使われるコマンドは、 指定したターゲットデバイスに存在しているデータを破壊してしまうので、 正しいデバイスが指定されていることに *細心の注意を払ってください*。 +====== + . man:dd[1] コマンドユーティリティは、 BSD, Linux(R), および Mac OS(R) システムで利用できます。 `dd` を使ってイメージを焼くには、 USB スティックを挿入して、 デバイス名を確定してください。 その後、ダウンロードしたインストールファイルおよび、 USB スティックのデバイス名を指定してください。 この例では、amd64 インストールイメージを FreeBSD システムの最初の USB デバイスに書き込みます。 + [source,shell] @@ -207,27 +216,33 @@ UEFI (Unified Extensible Firmware Interface) で起動するコンピュータ # dd if=FreeBSD-13.0-RELEASE-amd64-memstick.img of=/dev/da0 bs=1M conv=sync .... + -もし上記のコマンドに失敗するようでしたら、USB スティックがマウントされていないことや、デバイス名がディスクに対してのものであり、パーティションではないことを確認してください。 +もし上記のコマンドに失敗するようでしたら、USB スティックがマウントされているかどうか、デバイス名が (パーティションではなく) ディスクに対して指定されていることを確認してください。 ++ オペレーティングシステムによっては、このコマンドを man:sudo[8] で実行することが求められる場合があります。 man:dd[1] の書式は、プラットフォームによって少し変わります。 たとえば Mac OS(R) では、小文字の `bs=1m` を使う必要があります。 Linux(R) のようなシステムでは、書き込みをバッファします。 すべての書き込みを完了させるには、man:sync[8] を使用してください。 +==== [.procedure] -.Procedure: Windows(R) を使ってイメージを書き込む -[WARNING] ==== +*Procedure. Windows(R) を使ってイメージを書き込む* + + +[WARNING] +====== 適切なドライブレターを出力先に設定していることを十分に確認してください。 さもなければ、現在あるデータは上書きされ、 破壊されてしまうでしょう。 -==== -. Image Writer for Windows(R) を入手する +====== + +. *Image Writer for Windows(R) を入手する* + -Image Writer for Windows(R) は、 イメージファイルをメモリスティックに正しく書き込むことのできるフリーのアプリケーションです。 link:https://sourceforge.net/projects/win32diskimager/[https://sourceforge.net/projects/win32diskimager/] からダウンロードして、フォルダに展開してください。 +Image Writer for Windows(R) は、 イメージファイルをメモリスティックに正しく書き込むことのできるフリーのアプリケーションです。 +link:https://sourceforge.net/projects/win32diskimager/[win32diskimager ホームページ] からダウンロードして、フォルダに展開してください。 + . イメージライタを使ってイメージを書き込む + Win32DiskImager アイコンをダブルクリックして、プログラムを起動してください。 `Device` の下に表示されるデバイスレターが、 メモリスティックのドライブであることを確認してください。 フォルダのアイコンをクリックして、 メモリスティックに書き込むイメージファイルを選択します。 btn:[Save] をクリックして、 イメージファイルの名前を確定してください。 すべてが正しく行われたかどうか、また、 他のウィンドウでメモリスティックのフォルダが開かれていないことを確認してください。 準備ができたら、btn:[Write] をクリックして、 メモリスティックにイメージファイルを書き込んでください。 - -これで FreeBSD をインストールする用意ができました。 +==== [[bsdinstall-start]] == インストールの開始 @@ -247,29 +262,10 @@ commit your changes? この警告の前であれば、いつでもインストールを中断できます。 もし、何かを間違って設定してしまったことが心配ならば、 最後の警告の前に単にコンピュータをオフにしてください。 システムのハードディスクを変更せずに済みます。 ==== -この章では、<<bsdinstall-installation-media>> で説明されている手順によって準備されたインストールメディアから、 システムを起動する方法について説明します。 起動可能な USB スティックを使用する場合には、 コンピュータを立ち上げる前に、 USB スティックを挿入してください。 CD もしくは DVD から起動する場合には、 コンピュータを立ち上げ、 すぐにメディアを挿入してください。 挿入したメディアからシステムを起動するように設定する方法は、 アーキテクチャによって異なります。 - -[[bsdinstall-starting-i386]] -=== i386(TM) および amd64 での起動 - -これらのアーキテクチャでは、 BIOS メニューが用意されており、 ブートデバイスを選択できます。 利用するインストールメディアに合わせて、 最初のブートデバイスに、 CD/DVD または USB を選択してください。 ほとんどのシステムでは、BIOS に入らずとも、起動時に特定のキーを押すことで、 起動するデバイスを選択できます。 通常、このキーは、 kbd:[F10], kbd:[F11], kbd:[F12] または kbd:[Escape] のどれかです。 - -もし、コンピュータが FreeBSD のインストーラではなく、 すでに存在しているオペレーティングシステムで起動してしまったのであれば、 以下の原因が考えられます。 - -. インストールメディアが起動プロセスにおいて十分早いタイミングで挿入されていません。 メディアをそのままにしてコンピュータを再起動してください。 -. BIOS の変更が適切に行われていなかったり、 変更が保存されていません。 最初のブートデバイスに正しいブートデバイスが設定されていることを確認してください。 -. システムが古く、 希望しているメディアからの起動に対応していません。 この場合には、Plop Boot Manager (link:http://www.plop.at/en/bootmanagers.html[]) を使うと、選択したメディアからシステムを起動できます。 - -=== PowerPC(R) での起動 - -ほとんどのコンピュータでは、 起動中にキーボードの kbd:[C] を押しておくと、CD から起動します。 別の方法では kbd:[Command+Option+O+F]、 または non-Apple(R) キーボードでは kbd:[Windows+Alt+O+F] を押してください。`0 >` プロンプトで - -[source,shell] -.... - boot cd:,\ppc\loader cd:0 -.... - -と入力してください。 +この章では、<<bsdinstall-installation-media>> で説明されている手順によって準備されたインストールメディアから、システムを起動する方法について説明します。 +起動可能な USB スティックを使用する場合には、コンピュータを立ち上げる前に、USB スティックを挿入してください。 +CD もしくは DVD から起動する場合には、コンピュータを立ち上げ、すぐにメディアを挿入してください。 +挿入したメディアからシステムを起動するように設定する方法は、アーキテクチャ毎に異なります。 [[bsdinstall-view-probe]] === FreeBSD ブートメニュー @@ -278,20 +274,21 @@ commit your changes? [[bsdinstall-newboot-loader-menu]] .FreeBSD ブートローダメニュー -image::bsdinstall-newboot-loader-menu.png[] +image::bsdinstall-newboot-loader-menu.png[FreeBSD ブートローダメニュー] デフォルトでは、メニューは、FreeBSD インストーラが起動するまで (FreeBSD がインストールされているシステムでは、FreeBSD が起動するまで)、 ユーザからの入力を 10 秒間受け付けます。 タイマーを停止してオプションを確認には、 kbd:[Space] を押してください。オプションを選択するには、 ハイライトされている番号、文字、もしくはキーを押してください。 以下のオプションが利用可能です。 * `Boot Multi User`: FreeBSD の起動プロセスを続けます。 ブートタイマが停止しているのであれば kbd:[1]、 大文字もしくは小文字の kbd:[B] または、 kbd:[Enter] を押してください。 -* `Boot Single User`: このモードは、 すでにインストールされている FreeBSD を修復するために利用できます。 シングルユーザモードについては、 crossref:boot[boot-singleuser,「シングルユーザモード」] で説明されています。 kbd:[2] もしくは、小文字もしくは、大文字の kbd:[S] を押すとこのモードに入ることができます。 +* `Boot Single User`: このモードは、すでにインストールされている FreeBSD を修復するために利用できます。 シングルユーザモードについては、 crossref:boot[boot-singleuser,「シングルユーザモード」] で説明されています。 kbd:[2] もしくは、小文字もしくは、大文字の kbd:[S] を押すとこのモードに入ることができます。 * `Escape to loader prompt`: 制限された低レベルのコマンドのみが利用可能な修復用プロンプトでシステムを起動します。 このプロンプトについては、 crossref:boot[boot-loader,「起動ステージ 3」] で説明されています。 kbd:[3] または kbd:[Esc] を押すとこのプロンプトで起動します。 * `Reboot`: システムを再起動します。 +* `Cons`: `video`, `serial`, `Dual (serial primary)` または `Dual (Video primary)` でインストールを続けます。 * `Kernel`: 別のカーネルを読み込みます。 -* `Configure Boot Options`: <<bsdinstall-boot-options-menu>> で示されるメニューを開きます。 +* `Boot Options`: <<bsdinstall-boot-options-menu>> で示されるメニューを開きます。 [[bsdinstall-boot-options-menu]] .FreeBSD ブートオプションメニュー -image::bsdinstall-boot-options-menu.png[] +image::bsdinstall-boot-options-menu.png[サポートされているブートオプションのメニュー] この起動オプションメニューは、 2 つのセクションから構成されています。 最初のセクションは、メインのブートメニューに戻ったり、 オプションをデフォルト値に戻すために利用できます。 @@ -306,9 +303,14 @@ image::bsdinstall-boot-options-menu.png[] [[bsdinstall-choose-mode]] .ウェルカムメニュー -image::bsdinstall-choose-mode.png[] +image::bsdinstall-choose-mode.png[FreeBSD インストーラのウェルカムメニュー] -kbd:[Enter] を押して、デフォルトの btn:[Install] を選択すると、インストール作業が始まります。 この章の残りの部分では、このインストーラの使い方について説明します。 メニュー項目を選択する他の方法としては、 左右の矢印キーを使ったり、色が変わっている文字を使ってください。 btn:[Shell] を選択すると、 インストールの前に、FreeBSD シェルからコマンドラインユーティリティでディスクを準備できます。 btn:[Live CD] オプションを選択すると、 インストール前に FreeBSD を試すことができます。 live 版については、<<using-live-cd>> で説明されています。 +kbd:[Enter] を押して、デフォルトの btn:[Install] を選択すると、インストール作業が始まります。 +この章の残りの部分では、このインストーラの使い方について説明します。 +メニュー項目を選択するには、左右の矢印キーを使ったり、色付けされた文字を使ってください。 +btn:[Shell] を選択すると、インストールの前に、FreeBSD シェルからコマンドラインユーティリティでディスクを準備できます。 +btn:[Live CD] オプションを選択すると、 インストール前に FreeBSD を試すことができます。 +live 版については、<<using-live-cd>> で説明されています。 [TIP] ==== @@ -327,13 +329,15 @@ kbd:[Enter] を押して、デフォルトの btn:[Install] を選択すると [[bsdinstall-keymap-loading]] .キーマップの読み込み -image::bsdinstall-keymap-loading.png[] +image::bsdinstall-keymap-loading.png[キーマップの読み込み] -キーマップが読み込まれると、 bsdinstall は <<bsdinstall-keymap-10>> を表示します。 上下の矢印キーを使って、 システムのキーボードに最も近いキーマップを選択してください。 選択を保存するには、kbd:[Enter] キーを押してください。 +キーマップが読み込まれると、bsdinstall は <<bsdinstall-keymap-10>> を表示します。 +上下の矢印キーを使って、システムのキーボードに最も近いキーマップを選択してください。 +選択を保存するには、kbd:[Enter] キーを押してください。 [[bsdinstall-keymap-10]] .キーマップ選択メニュー -image::bsdinstall-keymap-10.png[] +image::bsdinstall-keymap-10.png[キーマップ選択メニュー。対応しているすべてのキーボードが表示されます。] [NOTE] ==== @@ -344,7 +348,7 @@ kbd:[Esc] を押すと、メニューは終了し、 デフォルトのキーボ [[bsdinstall-keymap-testing]] .キーマップテストメニュー -image::bsdinstall-keymap-testing.png[] +image::bsdinstall-keymap-testing.png[キーマップテストメニュー] [[bsdinstall-hostname]] === ホスト名の設定 @@ -353,7 +357,7 @@ image::bsdinstall-keymap-testing.png[] [[bsdinstall-config-hostname]] .ホスト名の設定 -image::bsdinstall-config-hostname.png[] +image::bsdinstall-config-hostname.png[ホスト名の設定] ネットワーク上でユニークなホスト名を入力してください。 入力するホスト名は、`machine3.example.com` のように完全修飾のホスト名で入力してください。 @@ -364,7 +368,7 @@ image::bsdinstall-config-hostname.png[] [[bsdinstall-config-components]] .インストールするコンポーネントの設定 -image::bsdinstall-config-components.png[] +image::bsdinstall-config-components.png[base-dbg, lib32, ports などのインストールするコンポーネントの設定] どのコンポーネントをインストールするかは、 システムの用途と用意されているディスク容量に依存します。 _base system_ として知られている FreeBSD カーネルとユーザランドは、 常にインストールされます。 アーキテクチャによっては、表示されないコンポーネントもあります。 @@ -376,7 +380,8 @@ image::bsdinstall-config-components.png[] + [WARNING] ==== -インストールプログラムは、 システムのディスクに十分な空き容量があるかどうかを確認しないので、 ハードディスクに十分な容量があるときだけ、 このオプションを選択するしてください。 FreeBSD 9.0 では、Ports Collection が必要とする容量は、 約 {ports.size} です。 +インストールプログラムは、システムのディスクに十分な空き容量があるかどうかを確認しないので、ハードディスクに十分な容量があるときだけ、このオプションを選択するしてください。 +FreeBSD Ports Collection が必要とする容量は、約 {ports-size} です。 ==== * `src` - FreeBSD のカーネルおよびユーザランド両方の完全なソースコードです。 ほとんどのアプリケーションは必要としませんが、 デバイスドライバやカーネルモジュール、 Ports Collection のアプリケーションによってはコンパイル時に必要となります。 このソースは、FreeBSD そのものの開発に使うこともできます。 すべてのソースツリーをインストールするには 1 GB のディスク容量を必要とします。 また、FreeBSD システム全体のコンパイルには、 さらに 5 GB の容量が必要です。 @@ -385,11 +390,14 @@ image::bsdinstall-config-components.png[] [[bsdinstall-netinstall]] === ネットワークからのインストール -<<bsdinstall-netinstall-notify>> で示されているメニューは、 [.filename]#-bootonly.iso# または [.filename]#-mini-memstick.img# からインストールする時のみ表示されます。この インストールメディアは、インストールファイルを含んでいません。 このメニューは、 ネットワーク経由でインストールファイルをダウンロードする必要があるため、 ネットワークインタフェースを最初に設定する必要があることを示しています。 このメニューがインストールのプロセスで表示された場合には、 <<bsdinstall-config-network-dev>> に書かれている手順に従ってください。 +<<bsdinstall-netinstall-notify>> で示されているメニューは、`-bootonly.iso` または `-mini-memstick.img` からインストールする時のみ表示されます。 +これらのインストールメディアはインストールファイルを含んでいません。 +このメニューは、 ネットワーク経由でインストールファイルをダウンロードする必要があるため、ネットワークインタフェースを最初に設定する必要があることを示しています。 +このメニューがインストールのプロセスで表示された場合には、 <<bsdinstall-config-network-dev>> に書かれている手順に従ってください。 [[bsdinstall-netinstall-notify]] .ネットワークからのインストール -image::bsdinstall-netinstall-files.png[] +image::bsdinstall-netinstall-files.png[インストールするコンポーネントが見つからないため、ネットワークからダウンロードを試みることを示しています。] [[bsdinstall-partitioning]] == ディスク領域の割り当て @@ -398,38 +406,62 @@ image::bsdinstall-netinstall-files.png[] [[bsdinstall-zfs-partmenu]] .パーティション分割の選択 -image::bsdinstall-zfs-partmenu.png[] +image::bsdinstall-zfs-partmenu.png[パーティションのオプションを示しています。例: マニュアル、シェルなど] bsdinstall では、ディスク領域の割り当てのために 4 つの方法が用意されています。 +* `Auto (ZFS)` によるパーティションの分割では、root-on-ZFS システムを構築します。GELI 暗号に対応した _ブート環境_ を構築することもできます。 * `Auto (UFS)` によるパーティションの分割では、 `UFS` ファイルシステムを使ってディスクパーティションを自動的に分割します。 * `Manual` によるパーティションの分割は、 高度な知識を持つユーザ向けで、 メニューオプションからカスタマイズしたパーティションを作成できます。 * `Shell` では、シェルプロンプトを起動し、 高度な知識を持つユーザが、 man:gpart[8], man:fdisk[8], man:bsdlabel[8] のようなコマンドラインのプログラムを実行して、 カスタマイズしたパーティションを作成できます。 -* `Auto (ZFS)` によるパーティションの分割では、 root-on-ZFS システムを構築します。 GELI 暗号に対応した _ブート環境_ を構築することもできます。 この章では、 ディスクパーティションをレイアウトする際の検討事項を説明します。 その後、各パーティションの作成方法について説明します。 [[configtuning-initial]] === パーティションレイアウトのデザイン -ファイルシステムのレイアウトを行う際には、 ハードディスクの外周部は内周部よりもデータ転送が速いということを思い出してください。 これに従えば、 小さくて激しくアクセスされるファイルシステムを外周付近に、 [.filename]#/usr# のようなより大きなパーティションはディスクの内側に配置すべきでしょう。 そのため、パーティションを作成する際には、[.filename]#/#、 スワップ、[.filename]#/var#, [.filename]#/usr# のような順で作ってゆくのがよいでしょう。 +デフォルトのファイルシステムのパーティションレイアウトは、システム全体をひとつのファイルシステムで構成します。 +十分なディスク容量または複数のディスクを用いる環境において `UFS` を用いる場合は、複数のファイルシステムを検討する価値があります。 +ファイルシステムのレイアウトを行う際には、 ハードディスクの外周部は内周部よりもデータ転送が速いということを思い出してください。 +これに従えば、 小さくて激しくアクセスされるファイルシステムを外周付近に、`/usr` のようなより大きなパーティションはディスクの内側に配置すべきでしょう。 +そのため、パーティションを作成する際には、`/`、 スワップ、`/var`, `/usr` のような順で作ってゆくのがよいでしょう。 -[.filename]#/var# パーティションのサイズは、 あなたが計算機をどのように使おうとしているかを反映します。 このパーティションには主としてメールボックスやログファイル、 プリンタスプールが置かれます。 メールボックスとログファイルは、 システムのユーザ数やログの保持期間に依存して予期し得ぬサイズにまで成長する可能性があります。 概して、ほとんどのユーザは、[.filename]#/var# にギガバイト以上の空き容量を必要とはしないでしょう。 +`/var` パーティションのサイズは、あなたが計算機をどのように使おうとしているかを反映します。 +このパーティションには主としてメールボックスやログファイル、 プリンタスプールが置かれます。 +メールボックスとログファイルは、 システムのユーザ数やログの保持期間に依存して予期し得ぬサイズにまで成長する可能性があります。 +概して、ほとんどのユーザは、`/var` にギガバイト以上の空き容量を必要とはしないでしょう。 [NOTE] ==== -時には、たくさんのディスク容量が [.filename]#/var/tmp# に必要になるときがあります。 新しいソフトウェアをインストールする際、 package のツールは、package の一時的なコピーを [.filename]#/var/tmp# 以下に展開します。 [.filename]#/var/tmp# 以下に十分なディスク容量が用意されていないと、 Firefox や LibreOffice のような、 大きなソフトウェア package のインストールが、 困難になることがあります。 +時には、たくさんのディスク容量が `/var/tmp` に必要になるときがあります。 +新しいソフトウェアをインストールする際、package のツールは、package の一時的なコピーを `/var/tmp` 以下に展開します。 +`/var/tmp` 以下に十分なディスク容量が用意されていないと、Firefox や LibreOffice のような、大きなソフトウェア package のインストールが、困難になることがあります。 ==== -[.filename]#/usr# パーティションには、 FreeBSD Ports Collection およびシステムのソースコードを含む、 システムをサポートするのに必要な多くのファイル群が置かれます。 このパーティションには、 少なくとも 2 ギガバイトの容量を用意することをおすすめします。 +`/usr` パーティションには、FreeBSD Ports Collection およびシステムのソースコードを含む、システムをサポートするのに必要な多くのファイル群が置かれます。 +このパーティションには、少なくとも 2 ギガバイトの容量を用意することをおすすめします。 +また、デフォルトではユーザのホームディレクトリは `/usr/home` に置かれますが、他のパーティションに置くこともできます。 +デフォルトでは、`/home` は `/usr/home` へのシンボリックリンクです。 パーティションのサイズを考える時、 必要量を念頭に置いてください。 別のパーティションには潤沢にスペースが余っているのに、 あるパーティションでスペースが足らないままというのは、 フラストレーションがたまるものです。 -経験からスワップパーティションのサイズは物理メモリ (RAM) の 2 倍というのが一般的です。 RAM の少ないシステムでは、 もっとスワップを増した方が性能がよくなります。 スワップが少なすぎる設定は、 あなたが後にメモリを増設したときに問題を起すばかりではなく、 VM ページスキャニングコードの能率を落します。 +経験からスワップパーティションのサイズは物理メモリ (RAM) の 2 倍というのが一般的です。 +RAM の少ないシステムでは、もっとスワップを増した方が性能がよくなります (大きなメモリの設定では少なくて済みます)。 +スワップが少なすぎる設定は、あなたが後にメモリを増設したときに問題を起すばかりではなく、VM ページスキャニングコードの能率を落します。 -複数の SCSI ディスクや異なるコントローラで操作される複数の IDE ディスクを持つ大規模なシステムでは、 それぞれのドライブ (4 台まで) にスワップを設定することを推奨します。 各ドライブのスワップパーティションはほぼ同一サイズであるべきです。 カーネルは任意のサイズを扱うことができますが、 内部のデータ構造は最大のスワップパーティションの 4 倍に調節されます。 スワップパーティションをほぼ同一のサイズにしておくことで、 カーネルはスワップスペースを最適なかたちでディスクをまたいでストライプさせることができます。 あなたが通常スワップをたくさん使わないとしても、 多くのスワップサイズを用意しておくと良いでしょう。 プログラムが暴走しても再起動させられる前に回復することが容易になります。 +複数の SCSI ディスクや異なるコントローラで操作される複数の IDE ディスクを持つ大規模なシステムでは、それぞれのドライブ (4 台まで) にスワップを設定することを推奨します。 +各ドライブのスワップパーティションはほぼ同一サイズであるべきです。 +カーネルは任意のサイズを扱うことができますが、内部のデータ構造は最大のスワップパーティションの 4 倍に調節されます。 +スワップパーティションをほぼ同一のサイズにしておくことで、カーネルはスワップスペースを最適なかたちでディスクをまたいでストライプさせることができます。 +多くのスワップサイズを用意すると、全体のスワップに関するカーネルの警告メッセージがが表示されることがあります。 +警告メッセージに示される手順に従って、スワップの割り当てのために許容されるメモリ量を増やすことで、この制限容量を増やすことができます。 -システムを適切にパーティション化することで、 小さいが書き込みの激しいパーティションによって引き起こされるフラグメント化を、 読み出し専門のパーティションにまで波及させずにすみます。 また、書き込みの激しいパーティションをディスクの周辺部に配置することで、 I/O パフォーマンスを増大させることができます。 大きなパーティション内の I/O パフォーマンスもまた必要とされているでしょうが、 ディスク周辺部へ移動させたとしても、 [.filename]#/var# を周辺部に移動させることによって大きな効果が得られたのとは対照的に、 意味のあるパフォーマンスの増加は見込めないでしょう。 +あなたが通常スワップをたくさん使わないとしても、 +プログラムが暴走しても再起動させられる前に回復することが容易になります。 + +システムを適切にパーティション化することで、小さいが書き込みの激しいパーティションによって引き起こされるフラグメント化を、読み出し専門のパーティションにまで波及させずにすみます。 +また、書き込みの激しいパーティションをディスクの周辺部に配置することで、I/O パフォーマンスを増大させることができます。 +大きなパーティション内の I/O パフォーマンスもまた必要とされているでしょうが、ディスク周辺部へ移動させたとしても、`/var` を周辺部に移動させることによって大きな効果が得られたのとは対照的に、意味のあるパフォーマンスの増加は見込めないでしょう。 [[bsdinstall-part-guided]] === UFS を用いた Guided によるパーティションの分割 @@ -438,37 +470,48 @@ bsdinstall では、ディスク領域の割り当てのために 4 つの方法 [[bsdinstall-part-guided-disk]] .複数のディスクから選択する -image::bsdinstall-part-guided-disk.png[] +image::bsdinstall-part-guided-disk.png[FreeBSD をインストールすることのできるディスクの一覧が表示されます] ディスクを選択したら、次のメニューでは、 ディスクのすべてにインストールを行うか、 または空き容量にパーティションを作成してインストールを行うかを設定します。 btn:[Entire Disk] を選択すると、 一般的なパーティションレイアウトが自動的に作成されます。 btn:[Partition] を選択すると、 ディスクの使用していない領域にパーティションレイアウトを作成します。 [[bsdinstall-part-entire-part]] .Entire Disk または Partition の選択 -image::bsdinstall-part-entire-part.png[] +image::bsdinstall-part-entire-part.png[使用するディスク上で利用可能な領域をすべて使うか、もしくはパーティションを作成するかを選択するメニュー] -btn:[Entire Disk] を選択すると、 bsdinstall は、 ディスクの内容が消去されることを確認するダイアログを表示します。 +btn:[Entire Disk] オプションを選択すると、bsdinstall はディスクの内容が消去されることを確認するダイアログを表示します。 [[bsdinstall-ufs-warning]] .確認 -image::bsdinstall-ufs-warning.png[] +image::bsdinstall-ufs-warning.png[ユーザに対しディスク上のすべてのデータが消去されることの確認メニュー] -次のメニューでは、 パーティションスキームタイプの一覧が表示されます。 amd64 コンピュータでは、通常 GPT が最も適切な選択となります。 GPT に対応していないような古いコンピュータでは、 MBR を使う必要があります。 他のパーティションスキームは、使うことがまれであったり、 古いコンピュータで用いられるものです。 <<partition-schemes>> に詳細があります。 +次のメニューでは、 利用可能なパーティションスキームタイプの一覧が表示されます。 +amd64 コンピュータでは、通常 GPT が最も適切な選択となります。 +GPT に対応していないような古いコンピュータでは、MBR を使う必要があります。 +他のパーティションスキームは、使うことがまれであったり、古いコンピュータで用いられるものです。 +<<partition-schemes>> に詳細があります。 [[bsdinstall-ufs-scheme]] .パーティションスキームの選択 -image::bsdinstall-part-manual-partscheme.png[] +image::bsdinstall-part-manual-partscheme.png[ユーザに対して選択可能なさまざまなパーティションタイプを示し、そのうちのどれかを選択するためのメニュー] -パーティションのレイアウトを作成したら、 インストールの条件を満たしているかどうかを深く確認してください。 btn:[Revert] を選択すると、 パーティションをオリジナルの値にリセットします。 また、btn:[Auto] を選択すると、 FreeBSD パーティションを自動的に作成します。 パーティションを手動で作成、変更、削除することもできます。 正しくパーティションを作成出来たら、 btn:[Finish] を選択し、 インストールを進めてください。 +パーティションのレイアウトを作成したら、インストールの条件を満たしているかどうかを深く確認してください。 +btn:[Revert] を選択すると、パーティションをオリジナルの値にリセットします。 +また、btn:[Auto] を選択すると、FreeBSD パーティションを自動的に作成します。 +パーティションを手動で作成、変更、削除することもできます。 +正しくパーティションを作成出来たら、 btn:[Finish] を選択し、インストールを進めてください。 [[bsdinstall-part-review]] .作成されたパーティションの確認 -image::bsdinstall-part-review.png[] +image::bsdinstall-part-review.png[作成されたパーティションを表示するメニュー] -ディスクを一度設定すると、次のメニューは、 選択したハードドライブをフォーマットする前に、 設定を変更する最後のチャンスです。 もし変更が必要であれば、 btn:[Back] を選択してメインのパーティションエディタまで戻ってください。 btn:[Revert & Exit] を選択すると、 ハードドライブへの変更なしにインストールを終了します。 インストールプロセスを開始するのには、 btn:[Commit] を選択してしてください。 +ディスクを一度設定すると、次のメニューは、選択したハードドライブをフォーマットする前に、設定を変更できる最後のチャンスです。 +もし変更が必要であれば、 btn:[Back] を選択してメインのパーティションエディタまで戻ってください。 +btn:[Revert & Exit] を選択すると、ハードドライブへの変更なしにインストールを終了します。 +インストールプロセスを開始するには、 btn:[Commit] を選択してしてください。 [[bsdinstall-ufs-final-confirmation]] .最後の確認 -image::bsdinstall-final-confirmation.png[] +image::bsdinstall-final-confirmation.png[ユーザに対してインストールを開始すると、すべての変更がディスクに書き込まれ、ディスクに存在するデータは完全に削除されることを確認するメニュー] <<bsdinstall-fetching-distribution>> に進んで、インストールプロセスを続けてください。 @@ -479,19 +522,19 @@ image::bsdinstall-final-confirmation.png[] [[bsdinstall-part-manual-create]] .Manual によるパーティションの分割 -image::bsdinstall-part-manual-create.png[] +image::bsdinstall-part-manual-create.png[パーティションエディタを表示しているメニュー] -インストール先のドライブ (この例では [.filename]#ada0#) を選び、 btn:[Create] を選択すると、 利用可能なパーティションスキームの一覧が表示されます。 +インストール先のドライブ (この例では `ada0`) を選び、 btn:[Create] を選択すると、 利用可能なパーティションスキームの一覧が表示されます。 [[bsdinstall-part-manual-partscheme]] .手動でパーティションを作成する -image::bsdinstall-part-manual-partscheme.png[] +image::bsdinstall-part-manual-partscheme.png[選択可能なパーティションスキームを表示しているメニュー] amd64 コンピュータでは、通常 GPT が最も適切な選択となります。 GPT に対応していないような古いコンピュータでは、 MBR を使う必要があります。 他のパーティションスキームは、使うことがまれであったり、 古いコンピュータで用いられるものです。 [[partition-schemes]] .パーティションスキーム -[cols="1,1", frame="none", options="header"] +[cols="25h,~", frame="none", options="header"] |=== <| 省略形 <| 説明 @@ -503,28 +546,36 @@ amd64 コンピュータでは、通常 GPT が最も適切な選択となりま |MBR を用いない BSD ラベル。 BSD 以外のディスクユーティリティは認識しないため、しばしば _dangerously dedicated mode_ と呼ばれます。 |GPT -|GUID Partition Table (link:http://en.wikipedia.org/wiki/GUID_Partition_Table[http://en.wikipedia.org/wiki/GUID_Partition_Table]) +|link:https://en.wikipedia.org/wiki/GUID_Partition_Table[GUID Partition Table] |MBR -|Master Boot Record (link:http://en.wikipedia.org/wiki/Master_boot_record[http://en.wikipedia.org/wiki/Master_boot_record]) +|link:https://en.wikipedia.org/wiki/Master_boot_record[Master Boot Record] |=== パーティションスキームを選択して作成した後で、 もう一度 btn:[Create] を選択すると、 パーティションが作成されます。kbd:[Tab] キーを使ってカーソルをフィールド間で移動できます。 [[bsdinstall-part-manual-addpart]] .手動でパーティションを作成する -image::bsdinstall-part-manual-addpart.png[] +image::bsdinstall-part-manual-addpart.png[追加するパーティションのタイプ、サイズ、マウントポイントおよびラベル情報を入力するためのメニュー] -標準の FreeBSD GPT のインストールでは、 少なくとも 3 つのパーティションが使われます。 +標準の FreeBSD GPT のインストールでは、UFS または ZFS を含む少なくとも 3 つのパーティションが使われます。 -* `freebsd-boot` - FreeBSD ブートコードを含んでいます。 +* `freebsd-boot` または `efi` - FreeBSD ブートコードを含んでいます。 * `freebsd-ufs` - FreeBSD UFS ファイルシステム。 -* `freebsd-zfs` - FreeBSD ZFS ファイルシステム。 詳細については、 (crossref:zfs[filesystems-zfs,The Z File System (ZFS)]) をご覧ください。 +* `freebsd-zfs` - FreeBSD ZFS ファイルシステム。 詳細については、 link:https://docs.freebsd.org/en/books/handbook/zfs/#zfs[The Z File System (ZFS)] をご覧ください。 * `freebsd-swap` - FreeBSD スワップ空間。 利用可能な GPT パーティションタイプについては、man:gpart[8] をご覧ください。 -複数のファイルシステムのパーティションを作成できます。 [.filename]#/#, [.filename]#/var#, [.filename]#/tmp# そして [.filename]#/usr# といった伝統的なパーティション分割のレイアウトを好む人もいます。 レイアウトの例が <<bsdinstall-part-manual-splitfs>> にあります。 +複数のファイルシステムのパーティションを作成できます。 +人によっては `/`, `/var`, `/tmp` および `/usr` にパーティションを分割する伝統的なレイアウトが好まれます。 + +[TIP] +==== +十分なメモリを搭載したシステムでは、メモリベースのファイルシステム (man:tmpfs[5]) を `/tmp` として後で追加できます。 +==== + +レイアウトの例が <<bsdinstall-part-manual-splitfs>> にあります。 `Size` には、 _K_ (キロバイト)、 _M_ (メガバイト)、 _G_ (ギガバイト) といった通常の省略形を使用出来ます。 @@ -533,9 +584,14 @@ image::bsdinstall-part-manual-addpart.png[] セクタを適切に配置することで、 最良のパフォーマンスを得ることができます。 また、パーティションサイズを 4K バイトの偶数倍にすると、 512 バイトまたは 4K バイトのセクタでドライブが配置しやすくなります。 一般的に、 4K の偶数倍の場所からパーティションが開始するように設定する簡単な方法は、 1M または 1G の偶数倍のパーティションサイズを用いることです。 ただし、例外があります。 _freebsd-boot_ パーティションは、 ブートコードの制限により 512K 以下である必要があります。 ==== -ファイルシステムを持つパーティションでは、 `Mountpoint` が必要となります。 1 つの UFS パーティションだけを作成したのであれば、 マウントポイントは [.filename]#/# となります。 +ファイルシステムを持つパーティションでは、`マウントポイント` が必要となります。 +1 つの UFS パーティションだけを作成したのであれば、マウントポイントは `/` となります。 -`Label` は作成したパーティションを認識するための名前です。 ドライブ名や番号は、 ドライブが別のコントローラやポートに接続されると変わることがありますが、 パーティションラベルは変わりません。 [.filename]#/etc/fstab# のようなファイルの中で、 ドライブ名やパーティション番号ではなく、ラベルを参照することにより、 システムがハードウェアの変更に対して、より寛容になります。 GPT ラベルは、 ディスクが接続されると [.filename]#/dev/gpt/# に現れます。他のパーティションスキームでは別のラベルとなり、 [.filename]#/dev/# 以下の異なるディレクトリにラベルが現れます。 +`Label` は作成したパーティションを認識するための名前です。 +ドライブ名や番号は、ドライブが別のコントローラやポートに接続されると変わることがありますが、パーティションラベルは変わりません。 +`/etc/fstab` のようなファイルの中で、ドライブ名やパーティション番号ではなく、ラベルを参照することにより、システムがハードウェアの変更に対して、より寛容になります。 +GPT ラベルは、ディスクが接続されると `/dev/gpt/` に現れます。 +他のパーティションスキームでは別のラベルとなり、`/dev/` 以下の異なるディレクトリにラベルが現れます。 [TIP] ==== @@ -543,12 +599,15 @@ image::bsdinstall-part-manual-addpart.png[] ==== [[bsdinstall-part-manual-splitfs]] -.伝統的なファイルシステムのパーティションを作成する。 +.伝統的なファイルシステムのパーティションの作成 [example] ==== -伝統的なパーティションレイアウト ([.filename]#/#, [.filename]#/var#, [.filename]#/tmp# および [.filename]#/usr# ディレクトリが各パーティションの別のファイルシステム) を作成するには、 GPT パーティションスキームを作成し、 その後、示されているようにパーティションを作成してください。 示されているパーティションサイズは 20G のディスク用です。 ディスクにより多くの容量があれば、swap または [.filename]#/var# パーティションを大きく取ると良いでしょう。 ここで示されているラベルには、 `example` を意味する `ex` が付けられていますが、 実際には上で説明したように、 これとは別のユニークなラベルをつけてください。 +伝統的なパーティションレイアウト (`/`, `/var`, `/tmp` および `/usr` ディレクトリが各パーティションの別のファイルシステム) を作成するには、GPT パーティションスキームを作成し、その後、示されているようにパーティションを作成してください。 +示されているパーティションサイズは 20G のディスク用です。 +ディスクにより多くの容量があれば、swap または `/var` パーティションを大きく取ると良いでしょう。 +ここで示されているラベルには、`example` を意味する `ex` が付けられていますが、実際には上で説明したように、これとは別のユニークなラベルをつけてください。 -FreeBSD の [.filename]#gptboot# は、 デフォルトでは最初に見つかった UFS パーティションが、 [.filename]#/# パーティションであることを前提としています。 +FreeBSD の `gptboot` は、 デフォルトでは最初に見つかった UFS パーティションが、 `/` パーティションであることを前提としています。 [.informaltable] [cols="1,1,1,1", frame="none", options="header"] @@ -566,7 +625,7 @@ FreeBSD の [.filename]#gptboot# は、 デフォルトでは最初に見つか |`freebsd-ufs` |`2G` -|[.filename]#/# +|`/` |`exrootfs` |`freebsd-swap` @@ -576,17 +635,17 @@ FreeBSD の [.filename]#gptboot# は、 デフォルトでは最初に見つか |`freebsd-ufs` |`2G` -|[.filename]#/var# +|`/var` |`exvarfs` |`freebsd-ufs` |`1G` -|[.filename]#/tmp# +|`/tmp` |`extmpfs` |`freebsd-ufs` |デフォルト (ディスクの残りのすべての容量) -|[.filename]#/usr# +|`/usr` |`exusrfs` |===== ==== @@ -600,27 +659,37 @@ FreeBSD の [.filename]#gptboot# は、 デフォルトでは最初に見つか [[bsdinstall-zfs-menu]] .ZFS パーティションメニュー -image::bsdinstall-zfs-menu.png[] +image::bsdinstall-zfs-menu.png[ZFS プールを設定するためのオプションを表示しているメニュー] -このメニューで選択できるオプションは以下の通りです。 +このメニューのオプションは以下の通りです。 * `Install` - 選択したオプションでインストールを進めます。 -* `Pool Type/Disks` - プールを構成する `Pool Type` およびディスクについて設定します。 ZFS の自動インストーラは、 現時点で、ストライプモードを除き、 単一のトップレベルの仮想デバイスの作成のみに対応しています。 より複雑なプールを作成するには、 <<bsdinstall-part-shell>> で説明されている方法で作成してください。 +* `Pool Type/Disks` - プールを構成する `Pool Type` およびディスクについて設定します。 +現時点で ZFS の自動インストーラは、ストライプモードを除き、単一のトップレベルの仮想デバイスの作成のみに対応しています。 +より複雑なプールを作成するには、 <<bsdinstall-part-shell>> で説明されている方法で作成してください。 * `Rescan Devices` - 利用可能なディスクの一覧を再表示します。 -* `Disk Info` - Disk Info メニューを使って各ディスクを調べることができます。 パーティションテーブルやそれ以外のデバイスモデルナンバーおよびシリアルナンバーといった情報も、 可能であれば調べることができます。 +* `Disk Info` - このメニューを使って各ディスクを調べることができます。 +パーティションテーブルやそれ以外のデバイスモデルナンバーおよびシリアルナンバーといった情報も、可能であれば調べることができます。 * `Pool Name` - pool の名前を設定します。 デフォルトの名前は _zroot_ です。 * `Force 4K Sectors?` - 4K セクタを使用するようにします。 インストーラは、デフォルトで 4K の境界に整列するようにパーティションを自動的に作成し、 ZFS が 4K セクタを使用するようにします。 これは 512 バイトセクタのディスクでも安全で、 512 バイトのディスク上に作成されたプールが将来的に 4K セクタのディスクを追加できるようにしておくことには、 ストレージ容量の追加や壊れたディスクの交換時に恩恵があります。 有効にするか無効にするかを選択して kbd:[Enter] キーを押してください。 -* `Encrypt Disks?` - GELI を使ってディスクを暗号化できます。 ディスクの暗号化の詳細については、 crossref:disks[disks-encrypting-geli,geli によるディスクの暗号化] をご覧ください。 kbd:[Enter] キーを押して、 暗号化を有効にするか無効にするかを選択してください。 -* `Partition Scheme` - パーティションスキームを選択します。 ほとんどの場合において、GPT が推奨されます。 別のスキームを選択する場合には、 kbd:[Enter] キーを押してください。 +* `Encrypt Disks?` - GELI を使ってディスクを暗号化できます。ディスクの暗号化の詳細については、 link:https://docs.freebsd.org/en/books/handbook/disks/#disks-encrypting-geli[geli によるディスクの暗号化] をご覧ください。 kbd:[Enter] キーを押して、暗号化を有効にするか無効にするかを選択してください。 +* `Partition Scheme` - パーティションスキームを選択します。 +ほとんどの場合において、GPT が推奨されます。 +別のスキームを選択する場合には、 kbd:[Enter] キーを押してください。 * `Swap Size` - スワップ容量を設定します。 -* `Mirror Swap?` - スワップ領域をディスク間でミラー化します。 スワップ領域をミラー化すると、クラッシュダンプを取得できないので、 注意してください。 kbd:[Enter] キーを押して有効/無効を設定してください。 -* `Encrypt Swap?` - スワップ領域を暗号化します。 システムの起動時に一時キーをとともにスワップ領域を暗号化し、 再起動時にキーは破棄されます。 kbd:[Enter] キーを押して有効/無効を設定してください。 詳細については、 crossref:disks[disks-encrypting-geli,swap 領域の暗号化] を参照してください。 +* `Mirror Swap?` - スワップ領域をディスク間でミラー化するかどうかを設定します。 +スワップ領域をミラー化すると、クラッシュダンプを取得できないので注意してください。 +kbd:[Enter] キーを押して有効/無効を設定してください。 +* `Encrypt Swap?` - スワップ領域の暗号化について設定します。 +これはシステムの起動時に一時キーとともにスワップ領域を暗号化し、再起動時にキーは破棄されます。 +kbd:[Enter] キーを押して有効/無効を設定してください。 +詳細については、 link:https://docs.freebsd.org/en/books/handbook/disks/#swap-encrypting[swap 領域の暗号化] を参照してください。 kbd:[T] を選択して、`Pool Type` およびプールに対応するディスクを選択してください。 [[bsdinstall-zfs-vdev_type]] .ZFS プールタイプ -image::bsdinstall-zfs-vdev_type.png[] +image::bsdinstall-zfs-vdev_type.png[stripe, mirror, raidz1 などの仮想デバイスタイプを選択するメニュー] このメニューで選択可能な `Pool Type` は以下の通りです。 @@ -631,62 +700,70 @@ image::bsdinstall-zfs-vdev_type.png[] * `raidz2` - ダブルパリティの RAID。 同時に 2 台のディスクの故障に耐えられます。 少なくとも 4 つのディスクが必要です。 * `raidz3` - トリプルパリティの RAID。 同時に 3 台のディスクの故障に耐えられます。 少なくとも 5 つのディスクが必要です。 -`Pool Type` を選択したら、 利用可能なディスクの一覧が表示されます。 その後、プールを構成するディスクを、1 つまたは複数選択してください。 十分なディスクが選択されているかどうかについて検証が行われます。 もし、問題があるようでしたら、btn:[<Change Selection>] を選択して、ディスクの一覧に戻ってください。 もしくは、 btn:[<Back>] を選択して、 `Pool Type` に戻ってください。 +`Pool Type` を選択したら、 利用可能なディスクの一覧が表示されます。 その後、プールを構成するディスクを、1 つまたは複数選択してください。 +十分なディスクが選択されているかどうかについて検証が行われます。 +検証に失敗するようであれば、btn:[<Change Selection>] を選択して、ディスクの一覧に戻ってください。 +もしくは、 btn:[<Back>] を選択して `Pool Type` に戻ってください。 [[bsdinstall-zfs-disk_select]] .ディスクの選択 -image::bsdinstall-zfs-disk_select.png[] +image::bsdinstall-zfs-disk_select.png[プールに追加するディスクを選択するメニュー] [[bsdinstall-zfs-vdev_invalid]] -.問題のある選択 -image::bsdinstall-zfs-vdev_invalid.png[] +.無効な選択 +image::bsdinstall-zfs-vdev_invalid.png[十分なディスクが選択されていないことを示しているメニュー] この一覧の中に抜けているディスクがある時や、 インストーラが立ち上がった後にディスクを接続した場合に、 最新の利用可能なディスクの一覧を見るには、 btn:[- Rescan Devices] を選択してください。 [[bsdinstall-zfs-rescan-devices]] -.Rescan Devices -image::bsdinstall-zfs-rescan-devices.png[] +.デバイスのリスキャン +image::bsdinstall-zfs-rescan-devices.png[デバイスのリスキャン] アクシデントで間違ったディスクを削除してしまわないように、 btn:[- Disk Info] メニュー選択して、 各ディスクのパーティションテーブル、および、 デバイスモデル番号およびシリアル番号などのさまざまな情報を確認してください。 [[bsdinstall-zfs-disk_info]] .ディスクの解析 -image::bsdinstall-zfs-disk_info.png[] +image::bsdinstall-zfs-disk_info.png[パーティションの情報を表示しているメニュー] kbd:[N] を選択して、 `Pool Name` を設定してください。 希望する名前を入力後、 btn:[<OK>] を選択して確定するか、 btn:[<Cancel>] を押して、 デフォルト名のままでメインメニューに戻ってください。 [[bsdinstall-zfs-pool-name]] .Pool Name -image::bsdinstall-zfs-pool-name.png[] +image::bsdinstall-zfs-pool-name.png[プールの名前を入力するメニュー] kbd:[S] を選択してスワップの容量を設定してください。 必要なスワップ容量を入力し、 btn:[<OK>] を押して確定するか、 もしくは btn:[<Cancel>] を押して、 デフォルトの容量のまま、メインメニューに戻ってください。 [[bsdinstall-zfs-swap-amount]] .Swap 容量 -image::bsdinstall-zfs-swap-amount.png[] +image::bsdinstall-zfs-swap-amount.png[スワップメモリの容量を入力するメニュー] -すべてのオプションに希望する値を設定したら、 メニューの上部にある btn:[>>> Install] オプションを選択してください。 インストーラは、ZFS プールを作成するための最終確認を行います。 これは、選択したドライブの内容が壊れることをキャンセルする最後の確認の場です。 +すべてのオプションに希望する値を設定したら、メニューの上部にある btn:[>>> Install] オプションを選択してください。 +インストーラは、最終確認として ZFS プールを作成するために選択したドライブの内容が削除されることをキャンセルできる最後の機会を提供してくれます。 [[bsdinstall-zfs-warning]] .最終確認 -image::bsdinstall-zfs-warning.png[] +image::bsdinstall-zfs-warning.png[データが削除されることをユーザに確認するメニュー] -GELI ディスク暗号化を有効にしていたら、 ディスクを暗号化するために用いるパスフレーズを 2 度求められます。その後、暗号の初期化が開始します。 +GELI ディスク暗号化を有効にしていたら、ディスクを暗号化するために用いるパスフレーズを 2 度求められます。 +その後、暗号の初期化が開始します。 [[bsdinstall-zfs-geli_password]] .ディスク暗号化パスワード -image::bsdinstall-zfs-geli_password.png[] +image::bsdinstall-zfs-geli_password.png[デバイスを暗号化するためのパスワードを入力するメニュー] [[bsdinstall-zfs-init-encription]] .暗号の初期化 -image::bsdinstall-zfs-init-encription.png[] +image::bsdinstall-zfs-init-encription.png[暗号の初期化が行われていることを示すメニュー] その後のインストールの過程は、通常通りに進みます。 インストールを進めるには、 <<bsdinstall-fetching-distribution>> に進んでください。 [[bsdinstall-part-shell]] === シェルモードによるパーティションの作成 -高度なインストールを行うには、bsdinstall が提供するパーティション分割のメニューは柔軟性にかけることがあります。 高度な技術を持つユーザは、パーティションメニューで btn:[Shell] オプションを選択することで、 手動でドライブを分割して、ファイルシステムを作成し、 [.filename]#/tmp/bsdinstall_etc/fstab# を作成し、 [.filename]#/mnt# 以下にファイルシステムをマウントできます。 以上を実行したら、 `exit` を実行して bsdinstall に戻り、 インストールを続けてください。 +高度なインストールを行う上で、bsdinstall が提供するパーティション分割のメニューは柔軟性にかけることがあります。 +手動でドライブの分割、ファイルシステムの作成、`/tmp/bsdinstall_etc/fstab` の作成、そして `/mnt` 以下へのファイルシステムのマウントを行うには、パーティションメニューで btn:[Shell] オプションを選択してください。 +このオプションは高度な技術を持つユーザ向けです。 +以上を実行したら、`exit` を実行して bsdinstall に戻り、インストールを続けてください。 [[bsdinstall-fetching-distribution]] == 配布ファイルのダウンロード @@ -697,33 +774,155 @@ image::bsdinstall-zfs-init-encription.png[] [[bsdinstall-distfile-fetching]] .配布ファイルのダウンロード -image::bsdinstall-distfile-fetching.png[] +image::bsdinstall-distfile-fetching.png[各コンポ―テントのダウンロード状況を表示しているメニュー] 次に、ダウンロードの際にエラーが含まれなかったか、 インストールメディアからの読み取り中に読み間違いが起きなかったかどうか等、 配布ファイルの完全性の検証が行われます。 [[bsdinstall-distfile-verify]] .配布ファイルの検証 -image::bsdinstall-distfile-verifying.png[] +image::bsdinstall-distfile-verifying.png[各コンポーネントの検証状況を表示しているメニュー] 最後に、検証された配布ファイルがディスクへ展開されます。 [[bsdinstall-distfile-extract]] .配布ファイルの展開 -image::bsdinstall-distfile-extracting.png[] +image::bsdinstall-distfile-extracting.png[配布ファイルの展開状況を表示しているメニュー] 必要な配布ファイルがすべて展開されると、 bsdinstall は、 インストール後の設定画面を表示します。 利用可能なインストール後のオプションについては次の章で説明します。 [[bsdinstall-post]] -== アカウント、タイムゾーン、 サービスおよびセキュリティオプションの設定 +== ネットワークインターフェース、アカウント、タイムゾーン、 サービスおよびセキュリティオプションの設定 [[bsdinstall-post-root]] === `root` パスワードの設定 -最初に `root` のパスワードを設定する必要があります。 パスワードを入力している際には、 入力している文字は画面に表示されません。 パスワードの入力後、もう一度入力する必要があります。 これは入力ミスを防ぐためです。 +最初に `root` のパスワードを設定する必要があります。 +パスワードを入力している際には、入力している文字は画面に表示されません。 +入力ミスを防ぐため、パスワードは 2 回入力する必要があります。 [[bsdinstall-post-set-root-passwd]] .`root` パスワードの設定 -image::bsdinstall-post-root-passwd.png[] +image::bsdinstall-post-root-passwd.png[root ユーザのパスワードを入力するメニュー] + +[[bsdinstall-config-network-dev]] +=== ネットワークインタフェースの設定 + +次に、コンピュータが認識したすべてのネットワークインタフェースが表示されます。 +設定するネットワークインタフェースを選んでください。 + +[[bsdinstall-configure-net-interface]] +.イーサネットインタフェースの選択 +image::bsdinstall-configure-network-interface.png[設定を行うネットワークインタフェースを選択するメニュー] + +イーサネットインタフェースを選択すると、<<bsdinstall-configure-net-ipv4>> で表示されるメニューが表示されます。 +ワイヤレスネットワークを選択すると、システムはワイヤレスアクセスポイントをスキャンします。 + +[[bsdinstall-wireless-scan]] +.ワイヤレスアクセスポイントのスキャン +image::bsdinstall-configure-wireless-scan.png[ワイヤレスネットワークのスキャンの進捗を表示しているメニュー] + +ワイヤレスネットワークは Service Set Identifier (SSID) によって識別されます。 +SSID は、それぞれのネットワークに与えられる、短く、一意的な名前です。 +スキャンで見つかった SSID は、そのネットワークで利用できる暗号化のタイプの説明とともに一覧で表示されます。 +もし、期待した SSID が一覧に表示されていなければ、btn:[Rescan] を選択してもう一度スキャンしてください。 +それでもなお期待したネットワークが表示されなければ、接続のためのアンテナに問題がないかを確認したり、コンピュータをアクセスポイントの近くに移動してみてください。 +その後もう一度スキャンしてください。 + +[[bsdinstall-wireless-accesspoints]] +.ワイヤレスネットワークの選択 +image::bsdinstall-configure-wireless-accesspoints.png[接続できるワイヤレスネットワークが表示されているメニュー] + +次に、ワイヤレスネットワークに接続するための暗号情報を入力してください。 +WEP のような古い暗号の安全性は低いので、WPA2 暗号が強く推奨されます。 +WPA2 を使用してるネットワークでは、Pre-Shared Key (PSK) と呼ばれるパスワードを入力してください。 +セキュリティ上の観点から、入力ボックスに入力した文字はアスタリスクで表示されます。 + +[[bsdinstall-wireless-wpa2]] +.WPA2 のセットアップ +image::bsdinstall-configure-wireless-wpa2setup.png[ワイヤレスネットワークのパスワードを入力するメニュー] + +次に、イーサネットもしくはワイヤレスインタフェースに対して、IPv4 を設定するかどうかを選択します。 + +[[bsdinstall-configure-net-ipv4]] +.IPv4 ネットワークの選択 +image::bsdinstall-configure-network-interface-ipv4.png[選択したネットワークインターフェースに対して IPv4 の設定を行うかどうかを確認するメニュー] + +IPv4 の設定方法は 2 通りあります。 +_DHCP_ はネットワークインタフェースを自動的に適切に設定する方法で、DHCP サーバのあるネットワークでは使用すべきです。 +DHCP を利用できない環境では、静的な設定として、ネットワークのアドレス情報を手動で入力する必要があります。 + +[NOTE] +==== +適当なネットワーク情報を入力しても動かないので、DHCP サーバが利用できなのであれば、ネットワーク管理者またはサービスプロバイダから <<bsdinstall-collect-network-information,必要となるネットワーク情報>> に示されている情報を入手してください。 +==== + +DHCP サーバを利用できるのであれば、次のメニューで btn:[Yes] を選択して、ネットワークインタフェースの設定を自動的に行ってください。 +DHCP サーバを検索し、システムに対するアドレス情報を入手する間、インストーラは少しの間停止しているように表示されます。 + +[[bsdinstall-net-ipv4-dhcp]] +.IPv4 DHCP 設定の選択 +image::bsdinstall-configure-network-interface-ipv4-dhcp.png[選択したインターフェースに対して DHCP で設定を行うかを選択するメニュー] + +DHCP サーバを利用できない環境では、btn:[No] を選択し、新しく表示されるメニューにおいて以下のようなアドレス情報を入力してください。 + +[[bsdinstall-net-ipv4-static]] +.静的な IPv4 の設定 +image::bsdinstall-configure-network-interface-ipv4-static.png[IPv4 ネットワークを設定するメニュー] + +[[bsdinstall-collect-network-information]] +* `IP Address` - コンピュータに与える IPv4 アドレスです。 このアドレスは一意的である必要があるため、ローカルネットワーク上の他のデバイスですでに使われているアドレスは使えません。 +* `Subnet Mask` - ネットワークのサブネットマスクです。 +* `Default Router` - このネットワークのデフォルトゲートウェイの IP アドレスです。 + +次の画面では、インタフェースを IPv6 で設定すべきかを選択します。 +IPv6 が利用でき、希望するのであれば、 btn:[Yes] を選択してください。 + +[[bsdinstall-net-ipv6]] +.IPv6 ネットワークの選択 +image::bsdinstall-configure-network-interface-ipv6.png[選択したネットワークインターフェースに対して IPv6 の設定を行うかどうかを確認するメニュー] + +IPv6 の設定に関しても 2 つの方法があります。 +StateLess Address AutoConfiguration (SLAAC) は、ローカルルータから適切なネットワーク設定情報を入手するように、自動的にリクエストします。 +詳細については http://tools.ietf.org/html/rfc4862[rfc4862] を参照してください。 +静的な設定では、ネットワーク情報を手動で入力する必要があります。 + +IPv6 ルータを利用できるのであれば、次のメニューで btn:[Yes] を選択し、ネットワークインタフェースの設定を自動的に行ってください。 +インストーラはルータを見つけ出し、システムに対するアドレス情報を入手するため、 少しの間停止しているように表示されます。 + +[[bsdinstall-net-ipv6-slaac]] +.IPv6 SLAAC 設定の選択 +image::bsdinstall-configure-network-interface-slaac.png[選択したネットワークインターフェースに対して SLAAC の設定を行うかどうかを確認するメニュー]] + +IPv6 ルータが利用できない環境では、btn:[No] を選択して、表示されるメニューで以下のアドレス情報を入力する必要があります。 + +[[bsdinstall-net-ipv6-static]] +.IPv6 の静的な設定 +image::bsdinstall-configure-network-interface-ipv6-static.png[IPv6 ネットワークを設定するメニュー] + +* `IPv6 Address` - このコンピュータに割り当てられた IPv6 アドレスです。このアドレスは一意的である必要があるため、ローカルネットワーク上の他のデバイスですでに使われているアドレスは使えません。 +* `Default Router` - このネットワークのデフォルトゲートウェイの IPv6 アドレスです。 + +最後のネットワークメニューでは、ホスト名とネットワークアドレスを変換する Domain Name System (DNS) リゾルバを設定します。 +すでに DHCP または SLAAC を使って自動的にネットワークインタフェースを設定したのであれば、`Resolver Configuration` には値がすでに入っているでしょう。 +そうでなければ、`Search` フィールドにローカルネットワークのドメイン名を入力してください。 +`DNS` #1 および `DNS` #2 は、ローカル DNS サーバの IPv4 または IPv6 アドレスです。 +少なくとも、1 つの DNS サーバは必要です。 + +[[bsdinstall-net-dns-config]] +.DNS の設定 +image::bsdinstall-configure-network-ipv4-dns.png[ネットワークの DNS を設定するメニュー] + +ネットワーク接続の設定が終わったら、FreeBSD をインストールするコンピュータと同じ地域のミラーサイトを選んでください。 +ターゲットコンピュータの近くのミラーサイトを選択できれば、ファイルのダウンロードは早く終わるので、インストールの時間は短くなります。 + +[TIP] +==== +ftp://ftp.freebsd.org (Main Site)` を選択すると、最も近いミラーに自動的にルーティングします。 +==== + +[[bsdinstall-netinstall-mirror]] +.ミラーサイトの選択 +image::bsdinstall-netinstall-mirrorselect.png[ミラーサイトを選択するメニュー] [[bsdinstall-timezone]] === タイムゾーンの設定 @@ -734,37 +933,37 @@ image::bsdinstall-post-root-passwd.png[] [[bsdinstall-timezone-region]] .地域の選択 -image::bsdinstall-timezone-region.png[] +image::bsdinstall-timezone-region.png[地域を選択するメニュー] 矢印キーを使って、適切な地域を選択し、 kbd:[Enter] を押してください。 [[bsdinstall-timezone-country]] .国名の選択 -image::bsdinstall-timezone-country.png[] +image::bsdinstall-timezone-country.png[国名を選択するメニュー] 矢印キーを使って、適切に国名を選び、 kbd:[Enter] を押してください。 [[bsdinstall-timezone-zone]] .タイムゾーンの選択 -image::bsdinstall-timezone-zone.png[] +image::bsdinstall-timezone-zone.png[タイムゾーンを選択するメニュー] 矢印キーを使って適切なタイムゾーンを選択し、 kbd:[Enter] を押してください。 [[bsdinstall-timezone-confirmation]] .タイムゾーンの確定 -image::bsdinstall-timezone-confirm.png[] +image::bsdinstall-timezone-confirm.png[タイムゾーンを確定するメニュー] タイムゾーンの省略形が正しいかどうかを確認してください。 [[bsdinstall-timezone-date]] .日付の設定 -image::bsdinstall-timezone-date.png[] +image::bsdinstall-timezone-date.png[システムの日付を設定するメニュー] 矢印キーを使って適切な日付を選択したら、 btn:[Set Date] を押してください。 btn:[Skip] を押すと日付の設定をスキップできます。 [[bsdinstall-timezone-time]] .時刻の設定 -image::bsdinstall-timezone-time.png[] +image::bsdinstall-timezone-time.png[システムの時刻を設定するメニュー] 矢印キーを使って適切な時刻に設定したら、 btn:[Set Time] を押してください。 btn:[Skip] を押すと時刻の設定をスキップできます。 @@ -775,17 +974,17 @@ image::bsdinstall-timezone-time.png[] [[bsdinstall-config-serv]] .追加で有効にするサービスの選択 -image::bsdinstall-config-services.png[] +image::bsdinstall-config-services.png[利用可能なサービスを表示しているメニュー] このメニューで有効にできるサービスは以下の通りです。 -* `local_unbound` - DNS のローカル unbound を有効にします。 この設定はベースシステムの unbound に対するもので、 ローカルキャッシュフォワードリゾルバとしての利用のみを想定しています。 ネットワーク全体のリゾルバを設定したいのであれば、 package:dns/unbound[] をインストールしてください。 +* `local_unbound` - DNS のローカル unbound を有効にします。この設定は、ローカルキャッシュフォワードリゾルバとしての利用のみを想定しています。ネットワーク全体のリゾルバを設定したいのであれば、 package:dns/unbound[] をインストールしてください。 * `sshd` - セキュアシェル (SSH) デーモンは、 暗号化された接続上でリモートアクセスするために使われます。 システムがリモートログインを必要とする場合のみ、 このサービスを有効にしてください。 * `moused` - システムのコンソールで、 マウスを利用する時に、このサービスを有効にしてください。 -* `ntpdate` - 起動時の自動時刻同期を有効にします。 この機能は、現在 man:ntpd[8] デーモンでも利用できます。 猶予期間が経過したら、man:ntpdate[8] ユーティリティはその役目を終える予定です。 -* `ntpd` - 自動時刻同期のための The Network Time Protocol (NTP) デーモン。 ネットワーク上に、 Windows(R), Kerberos または LDAP サーバがあるときには、このサービスを有効にしてください。 +* `ntpdate` - 起動時の自動時刻同期を有効にします。 この機能は、現在 man:ntpd[8] デーモンでも利用できます。 man:ntpdate[8] ユーティリティは近々その役目を終える予定です。 +* `ntpd` - 自動時刻同期のための The Network Time Protocol (NTP) デーモンを有効にします。リモートタイムサーバまたはプールとシステムの時刻を同期する場合は、このサービスを有効にしてください。 * `powerd` - 電源の管理およびエネルギーを節約するための電源コントロールユーティリティ -* `dumpdev` - システムのデバッグを行う上で、 クラッシュダンプを有効にすることは有用です。 可能であればクラッシュダンプを有効にすると良いでしょう。 +* `dumpdev` - システムのデバッグを行う上で、クラッシュダンプは有用なので、可能であれば有効にすると良いでしょう。 [[bsdinstall-hardening]] === セキュリティを強化するオプションを有効にする @@ -794,21 +993,36 @@ image::bsdinstall-config-services.png[] [[bsdinstall-hardening-options]] .セキュリティを強化するオプションの設定 -image::bsdinstall-hardening.png[] +image::bsdinstall-hardening.png[セキュリティを強化するオプションを表示しているメニュー] このメニューで有効にできるのは、以下のオプションです。 -* `hide_uids` - 情報漏洩防止のため、特権のないユーザが、他のユーザ (UID) により実行されているプロセスを見れないように、 他のユーザが実行しているプロセスを隠します。 -* `hide_gids` - 情報漏洩防止のため、特権のないユーザが、他のグループ (GID) により実行されているプロセスを見れないように、 他のユーザが実行しているプロセスを隠します。 -* `hide_jail` - 特権のないユーザが、jail の中で実行されているプロセスを見れないように、 jail で実行中のプロセスを隠します。 -* `read_msgbuf` - 権限のないユーザが、man:dmesg[8] を使ってカーネルログバッファのメッセージを見ることで、 カーネルメッセージバッファを読むことを無効にします。 -* `proc_debug` - ptrace() および ktrace() といった procfs 機能を含む、 さまざまな特権のないプロセス間のデバッキングサービスを、 特権のないユーザが無効にしないように、 プロセスデバッキング機能を無効にします。 このオプションによって、PHP などのスクリプト言語に対する組み込みのデバッキング機能と同様に、 たとえば man:lldb[1], man:truss[1], man:procstat[1] などの特権のないユーザによるデバッキングツールも無効になります。 -* `random_pid` - 新しく生成されるプロセスの PID をランダム化します。 -* `clear_tmp` - システムの起動時に [.filename]#/tmp# を空にします。 -* `disable_syslogd` - syslogd ネットワークソケットを閉じます。 デフォルトでは、FreeBSD は syslogd を `-s` を使った安全な方法で実行します。 これは、外からのポート 514 に対する UDP リクエストを待機しません。 このオプションを有効にすると、 syslogd を `-ss` フラグで実行します。 このフラグにより、syslogd は空いているどのポートからも受け付けません。 詳細は、man:syslogd[8] をご覧ください。 +* `hide_uids` - 他のユーザが実行しているプロセス (UID) を隠します。 +特権のないユーザが、他のユーザにより実行されているプロセスを見れないようにします。 +* `hide_gids` - 他のグループが実行しているプロセスを隠します。 +特権のないユーザが、他のグループ (GID) により実行されているプロセスを見れないようにします。 +* `hide_jail` - jail で実行中のプロセスを隠します。 +特権のないユーザが、jail の中で実行されているプロセスを見れないようにします。 +* `read_msgbuf` - 権限のないユーザが、カーネルメッセージバッファを読めなくします。 +権限のないユーザが、man:dmesg[8] を使ってカーネルログバッファのメッセージを見れないようにします。 +* `proc_debug` - 権限のないユーザ対するプロセスデバッキング機能を無効にします。 +`ptrace()` および `ktrace()` といった procfs 機能を含む、権限のないプロセス間のデバッキングサービスを無効にします。 +このオプションによって、PHP などのスクリプト言語に対する組み込みのデバッキング機能と同様に、man:lldb[1], man:truss[1] および man:procstat[1] などの権限のないユーザによるデバッキングツールも無効になります。 +* `random_pid` - プロセスの PID をランダム化します。 +* `clear_tmp` - システムの起動時に `/tmp` を空にします。 +* `disable_syslogd` - syslogd ネットワークソケットを閉じます。 +デフォルトでは、FreeBSD は syslogd を `-s` を使った安全な方法で実行します。 +これは、外からのポート 514 に対する UDP リクエストを待機しません。 +このオプションを有効にすると、syslogd を `-ss` 付きで実行します。 +これにより、syslogd は空いているどのポートからも受け付けません。 +詳細は、man:syslogd[8] をご覧ください。 * `disable_sendmail` - sendmail MTA を無効にします。 -* `secure_console` - このオプションを有効にすると、シングルユーザモードに入る際に、 プロンプトに対して `root` パスワードが必要となります。 -* `disable_ddtrace` - DTrace は、 実行中のカーネルに実際に影響を及ぼすモードで実行できます。 破壊的なアクションは、明示的に有効にしない限りは利用できません。 破壊的なアクションを実行できるようにするには、 `-w` を使って DTrace を実行する必要があります。 詳細については man:dtrace[1] をご覧ください。 +* `secure_console` - シングルユーザモードに入る際に、コマンドプロンプトに対して `root` パスワードが必要となります。 +* `disable_ddtrace` - DTrace は、 実行中のカーネルに影響を及ぼすモードで実行できます。 +破壊的なアクションは、明示的に有効にしない限りは利用できません。 +このオプションを有効にするには、DTrace を実行する際に `-w` を使ってください。 +詳細については man:dtrace[1] をご覧ください。 +* `enable_aslr` - アドレス空間配置のランダム化を有効にします。アドレス空間配置のランダム化の詳細については link:https://en.wikipedia.org/wiki/Address_space_layout_randomization[Wikipedia article] をご覧ください。 [[bsdinstall-addusers]] === ユーザの追加 @@ -819,13 +1033,13 @@ btn:[Yes] を選択し、 新しいユーザを追加してください。 [[bsdinstall-add-user1]] .新しいユーザのアカウントの作成 -image::bsdinstall-adduser1.png[] +image::bsdinstall-adduser1.png[システムにユーザを作成するか選択するメニュー] プロンプトに従い、 ユーザアカウントの作成で必要となる情報を入力してください。 <<bsdinstall-add-user2>> で示されている例では、`asample` ユーザアカウントを作成します。 [[bsdinstall-add-user2]] .ユーザ情報の入力 -image::bsdinstall-adduser2.png[] +image::bsdinstall-adduser2.png[追加するユーザの情報を入力しているメニュー] 以下は、入力情報のまとめです。 @@ -835,25 +1049,27 @@ image::bsdinstall-adduser2.png[] * `Login group` - 新しいユーザのログイングループ。 空欄のままにすると、デフォルトに割り当てられます * `Invite _user_ into other groups?` - ユーザを別のグループのメンバーとして追加するかどうか。 ユーザが管理者としてのアクセス必要であれば、 ここで `wheel` を入力してください。 * `Login class` - 空欄にするとデフォルトの設定になります。 -* `Shell` - 一覧の中から、ユーザのシェルを入力してください。 シェルに関する詳細については crossref:basics[shells,「シェル」] をご覧ください。 +* `Shell` - 一覧の中から、ユーザのシェルを入力してください。 シェルに関する詳細については crossref:basics[shells, シェル] をご覧ください。 * `Home directory` - ユーザのホームディレクトリ。 通常は、デフォルトの場所が適切です。 * `Home directory permissions` - ユーザのホームディレクトリの権限。 通常は、デフォルトが適切です。 * `Use password-based authentication?` - 通常は、ユーザがログイン時にパスワードの入力が要求されるように `yes` と入力してください。 -* `Use an empty password?` - 通常は、パスワードがないと安全ではなくなるので、 `no` です。 +* `Use an empty password?` - 空のパスワードは安全ではないので、通常は `no` です。 * `Use a random password?` - 通常は、次のプロンプトでユーザ自身のパスワードを入力できるように、 `no` です。 -* `Enter password` - ユーザのパスワードです。 入力している文字は画面に表示されません。 +* `Enter password` - ユーザのパスワードです。入力している文字は画面に表示されません。 * `Enter password again` - 確認のため、パスワードをもう一度入力します。 * `Lock out the account after creation?` - 通常は、ユーザがログインできるようにするため、 `no` です。 -すべてを入力したら、サマリが表示され、 正しいかどうかの確認を求められます。 入力した情報に間違いがあれば、 `no` を入力してもう一度作業を行なってください。 すべてが正しく入力されていれば、 `yes` を入力して、 新しいユーザを作成してください。 +すべての詳細を入力したら、サマリが表示され、 正しいかどうかの確認を求められます。 +入力した情報に間違いがあれば、 `no` を入力して修正してください。 +すべてが正しく入力されていれば、 `yes` を入力して新しいユーザを作成してください。 [[bsdinstall-add-user3]] .ユーザおよびグループの管理を終了する -image::bsdinstall-adduser3.png[] +image::bsdinstall-adduser3.png[追加するユーザの情報が正しかを確認しているメニュー] さらにユーザを追加するのであれば、 `Add another user?` の質問に対し、 `yes` を入力してください。 `no` を入力すると、ユーザの追加が終わり、次に進みます。 -ユーザの追加や、ユーザ管理の詳細については、 crossref:users[users-synopsis,「この章では」] を参照してください。 +ユーザの追加や、ユーザ管理の詳細については、 crossref:basics[users-synopsis, ユーザと基本的なアカウント管理] を参照してください。 [[bsdinstall-final-conf]] === 最後の設定 @@ -861,9 +1077,9 @@ image::bsdinstall-adduser3.png[] すべてをインストールし、設定が終わった後に、 最後に設定を修正する機会が与えられます。 [[bsdinstall-final-config]] -image::bsdinstall-finalconfiguration.png[] +image::bsdinstall-finalconfiguration.png[インストールを終わる前に、ユーザを追加したり、タイムゾーンなどを設定するためのメニュー] -インストールを完了する前に、 このメニューを使って変更、または、追加の設定を行なってください。 +インストールを完了する前に、このメニューを使って変更、または、追加の設定を行なってください。 .最終の設定オプション * `Add User` - <<bsdinstall-addusers>> で説明しています。 @@ -875,27 +1091,39 @@ image::bsdinstall-finalconfiguration.png[] * `Time Zone` - <<bsdinstall-timezone>> で説明しています。 * `Handbook` - FreeBSD ハンドブックのダウンロードとインストール。 -最後の設定が完了したら、btn:[Exit] を選んでください。 +設定が完了したら、btn:[Exit] を選んでください。 [[bsdinstall-final-modification-shell]] .Manual Configuration -image::bsdinstall-final-modification-shell.png[] +image::bsdinstall-final-modification-shell.png[インストールが終わり、追加でシェルを開いて手動で変更を行うかどうかを確認しているメニュー] -新しいシステムを再起動する前に、 bsdinstall は追加の設定が必要かどうかを尋ねてきます。 btn:[Yes] を選択して新しいシステムのシェルに入るか、または btn:[No] を選択して、インストールの最後のステップに進んでください。 +新しいシステムを再起動する前に、 bsdinstall は追加の設定が必要かどうかを尋ねてきます。 +btn:[Yes] を選択して新しいシステムのシェルに入るか、または btn:[No] を選択して、インストールの最後のステップに進んでください。 [[bsdinstall-final-main]] .インストールの終了 -image::bsdinstall-mainexit.png[] +image::bsdinstall-mainexit.png[インストールが終了し、システムを再起動するか、Live CD にアクセスするかを選択するメニュー] 追加の設定や、特別なセットアップが必要であれば、 btn:[Live CD] を選んでインストールメディアを Live CD で起動してください。 -インストールが終わったら、 btn:[Reboot] を選んで、 コンピュータを再起動し、新しい FreeBSD システムで起動してください。 再起動する前には、忘れずに FreeBSD インストールメディアを外してください。 さもないと、もう一度インストールメディアから起動してしまいます。 +インストールが終わったら、 btn:[Reboot] を選んで、 コンピュータを再起動し、新しい FreeBSD システムで起動してください。 +再起動する前には、忘れずに FreeBSD インストールメディアを外してください。 +さもないと、もう一度インストールメディアから起動してしまいます。 -FreeBSD の起動時には、多くのメッセージが画面に表示されます。 システムの起動後には、ログインプロンプトが表示されます。 `login:` プロンプトで、 インストール時に追加したユーザ名を入力してください。 `root` でのログインは避けてください。管理者の権限が必要となった時に、 スーパユーザになる方法については、crossref:users[users-superuser,「スーパーユーザアカウント」] を参照してください。 +FreeBSD の起動時には、多くのメッセージが画面に表示されます。 +システムの起動後には、ログインプロンプトが表示されます。 +`login:` プロンプトで、インストール時に追加したユーザ名を入力してください。 `root` でのログインは避けてください。 +管理者の権限が必要となった時に、スーパユーザになる方法については、crossref:basics[users-superuser, スーパーユーザアカウント] を参照してください。 -起動時に表示されていたメッセージは、 kbd:[Scroll-Lock] を押し、 scroll-back buffer で見ることができます。 kbd:[PgUp], kbd:[PgDn] そして矢印キーでメッセージをスクロールバックできます。 メッセージの確認が終わったら、kbd:[Scroll-Lock] をもう一度押すと、ディスプレイのロックを外し、 コンソールに戻ることができます。 何度かシステムを起動した後で、これらのメッセージを見るには、 コマンドプロンプトから `less /var/run/dmesg.boot` と入力してください。 確認後に kbd:[q] を押すと、 コマンドラインに戻ります。 +起動時に表示されていたメッセージは、 kbd:[Scroll-Lock] を押し、scroll-back buffer で見ることができます。 +kbd:[PgUp], kbd:[PgDn] そして矢印キーでメッセージをスクロールバックできます。 +メッセージの確認が終わったら、kbd:[Scroll-Lock] をもう一度押すと、ディスプレイのロックを外し、 コンソールに戻ることができます。 +何度かシステムを起動した後で、これらのメッセージを見るには、コマンドプロンプトから `less /var/run/dmesg.boot` と入力してください。 +確認後に kbd:[q] を押すと、 コマンドラインに戻ります。 -<<bsdinstall-config-serv>> にて、 sshd を有効に設定した場合には、 最初の起動時にシステムが RSA および DSA キーを生成するため、 少々時間がかかるかもしれません。 その後の起動はより速くなるでしょう。 鍵のフィンガープリントは、以下の例のように表示されます。 +<<bsdinstall-config-serv>> で sshd を有効に設定した場合には、最初の起動時にシステムが SSH ホストキーを生成するため、少々時間がかかるかもしれません。 +その後の起動はより速くなるでしょう。 +鍵のフィンガープリントは、以下の例のように表示されます。 [source,shell] .... @@ -942,107 +1170,13 @@ FreeBSD はデフォルトでは、グラフィカルな環境をインストー 適切に FreeBSD をシャットダウンすることは、 ハードウェアをダメージから守ったり、データの保護につながります。 __システムを適切にシャットダウンする前に、 電源を落すということはしないでください!__``wheel`` グループのメンバとなっているユーザは、 コマンドラインから `su` と入力し、 `root` のパスワードを入力してスーパユーザとなってください。 その後、`shutdown -p now` と入力すると、システムは正しくシャットダウンし、 ハードウェアが対応していれば、電源が落ちます。 -[[bsdinstall-network]] -== ネットワークインタフェース - -[[bsdinstall-config-network-dev]] -=== ネットワークインタフェースの設定 - -次に、 コンピュータが認識したすべてのネットワークインタフェースが表示されます。 設定するネットワークインタフェースを選んでください。 - -[[bsdinstall-configure-net-interface]] -.イーサネットインタフェースの選択 -image::bsdinstall-configure-network-interface.png[] - -イーサネットインタフェースを選択したのであれば、<<bsdinstall-configure-net-ipv4>> で表示されるメニューまで飛びます。 ワイヤレスネットワークを選択したのであれば、 システムはワイヤレスアクセスポイントをスキャンします。 - -[[bsdinstall-wireless-scan]] -.ワイヤレスアクセスポイントのスキャン -image::bsdinstall-configure-wireless-scan.png[] - -ワイヤレスネットワークは Service Set Identifier (SSID) によって識別されます。 SSID は、それぞれのネットワークに与えられる、 短く、一意的な名前です。 スキャンで見つかった SSID の一覧は、 そのネットワークで利用できる暗号化のタイプの説明とともに表示されます。 もし、期待した SSID が一覧に表示されていなければ、 btn:[Rescan] を選択してもう一度スキャンしてください。 もし、期待したネットワークが表示されなければ、 接続のためのアンテナを確認したり、 コンピュータをアクセスポイントの近くに移動させてみてください。 その後もう一度スキャンしてください。 - -[[bsdinstall-wireless-accesspoints]] -.ワイヤレスネットワークの選択 -image::bsdinstall-configure-wireless-accesspoints.png[] - -次に、 ワイヤレスネットワークに接続するための暗号情報を入力してください。 WEP のような古い暗号の安全性は低いので、 WPA2 暗号が強く推奨されます。 WPA2 を使用してるネットワークでは、 Pre-Shared Key (PSK) と呼ばれるパスワードを入力してください。 セキュリティ上の観点から、 入力ボックスに入力した文字はアスタリスクで表示されます。 - -[[bsdinstall-wireless-wpa2]] -.WPA2 のセットアップ -image::bsdinstall-configure-wireless-wpa2setup.png[] - -次は、イーサネットもしくはワイヤレスインタフェースに対して、 IPv4 を設定するかどうかを選択します。 - -[[bsdinstall-configure-net-ipv4]] -.IPv4 ネットワークの選択 -image::bsdinstall-configure-network-interface-ipv4.png[] - -IPv4 の設定方法は 2 通りあります。 _DHCP_ はネットワークインタフェースを自動的に適切に設定する方法で、 DHCP サーバのあるネットワークでは使用すべきです。 もし、DHCP を利用できない環境では、 静的な設定として、 ネットワークのアドレス情報を手動で入力する必要があります。 - -[NOTE] -==== -適当なネットワーク情報を入力しても動かないので、 DHCP サーバが利用できなのであれば、 ネットワーク管理者またはサービスプロバイダから <<bsdinstall-collect-network-information,必要となるネットワーク情報>> に示されている情報を入手してください。 -==== - -DHCP サーバを利用できるのであれば、 次のメニューで btn:[Yes] を選択して、 ネットワークインタフェースの設定を自動的に行ってください。 インストーラは DHCP サーバを検索し、 システムに対するアドレス情報を入手するために、 少しの間停止しているように表示されます。 - -[[bsdinstall-net-ipv4-dhcp]] -.IPv4DHCP 設定の選択 -image::bsdinstall-configure-network-interface-ipv4-dhcp.png[] - -DHCP サーバを利用できない環境では、 btn:[No] を選択し、 このメニューにおいて以下のアドレス情報を入力してください。 - -[[bsdinstall-net-ipv4-static]] -.IPv4 の静的な設定 -image::bsdinstall-configure-network-interface-ipv4-static.png[] - -[[bsdinstall-collect-network-information]] -* `IP Address` - コンピュータに手動で与える IPv4 アドレスです。 このアドレスは一意的なものである必要があり、 すでにローカルネットワーク上の他のネットワーク機器で使われているものではいけません。 -* `Subnet Mask` - ネットワークのサブネットマスクです。 -* `Default Router` - このネットワークのデフォルトゲートウェイの IP アドレスです。 - -次の画面では、インタフェースを IPv6 で設定すべきかを選択します。 IPv6 が利用でき、希望するのであれば、 btn:[Yes] を選択してください。 - -[[bsdinstall-net-ipv6]] -.IPv6 ネットワークの選択 -image::bsdinstall-configure-network-interface-ipv6.png[] - -IPv6 の設定に関しても 2 つの方法があります。 StateLess Address AutoConfiguration (_SLAAC_) は、ローカルルータから適切なネットワーク設定情報を入手するように、 自動的にリクエストします。 詳細については link:http://tools.ietf.org/html/rfc4862[http://tools.ietf.org/html/rfc4862] を参照してください。静的な設定では、 ネットワーク情報を手動で入力する必要があります。 - -IPv6 ルータを利用できるのであれば、 次のメニューで btn:[Yes] を選択し、 ネットワークインタフェースの設定を自動的に行ってください。 インストーラはルータを見つけ出し、 システムに対するアドレス情報を入手するために、 少しの間停止しているように表示されます。 - -[[bsdinstall-net-ipv6-slaac]] -.IPv6 SLAAC 設定の選択 -image::bsdinstall-configure-network-interface-slaac.png[] - -IPv6 ルータが利用できない環境では、 btn:[No] を選択して、 表示されるメニューで以下のアドレス情報を入力する必要があります。 - -[[bsdinstall-net-ipv6-static]] -.IPv6 の静的な設定 -image::bsdinstall-configure-network-interface-ipv6-static.png[] - -* `IPv6 Address` - このコンピュータに割り当てられた IPv6 アドレスです。 このアドレスは一意的なものである必要があり、 すでにローカルネットワーク上の他のネットワーク機器で使われているものではいけません。 -* `Default Router` - このネットワークのデフォルトゲートウェイの IPv6 アドレスです。 - -最後のネットワークメニューでは、 Domain Name System (DNS) リゾルバを設定します。 これは、ホスト名とネットワークアドレスを変換します。 すでに DHCP または SLAAC を使って自動的にネットワークインタフェースを設定したのであれば、 `Resolver Configuration` には値がすでに入っているでしょう。 そうでなければ、`Search` フィールドにローカルネットワークのドメイン名を入力してください。 `DNS` #1 および `DNS` #2 は、 ローカル DNS サーバの IPv4 または IPv6 アドレスです。 少なくとも、1 つの DNS サーバは必要です。 - -[[bsdinstall-net-dns-config]] -.DNS の設定 -image::bsdinstall-configure-network-ipv4-dns.png[] - -ネットワーク接続の設定が終わったら、FreeBSD をインストールするコンピュータと同じ地域のミラーサイトを選んでください。 ターゲットコンピュータの近くにミラーサイトがあると、 ファイルのダウンロードは早く終わるので、 インストールの時間は短くなります。 - -[[bsdinstall-netinstall-mirror]] -.ミラーサイトの選択 -image::bsdinstall-netinstall-mirrorselect.png[] [[bsdinstall-install-trouble]] == トラブルシューティング この章では、インストールの際の、 これまで報告された共通の問題に対する解決のための情報が書いてあります。 -インストールする FreeBSD のバージョンのハードウェアノート (link:https://www.FreeBSD.org/ja/releases/[https://www.freebsd.org/ja/releases/]) を調べて、 使用しているハードウェアに対応しているかどうかを確認してください。 もしハードウェアがサポートされているにもかかわらず、 動作しなかったり他の問題点がある時は、 crossref:kernelconfig[kernelconfig,FreeBSD カーネルのコンフィグレーション] で説明されている方法で カスタムカーネルを構築して、[.filename]#GENERIC# カーネルに含まれていないデバイスへのサポートを追加してください。 起動ディスクのカーネルでは、ほとんどのハードウェアデバイスの IRQ, I/O アドレス、 DMA チャネルが工場出荷時の状態であると設定されています。 もしハードウェアの設定が変更されている場合には、 カーネルコンフィグレーションファイルを編集することにより、 FreeBSD に設定することが可能です。 +link:https://www.FreeBSD.org/ja/releases/[FreeBSD リリース情報] ページにあるインストールする FreeBSD のバージョンのハードウェアノートを調べて、 使用しているハードウェアに対応しているかどうかを確認してください。 [NOTE] ==== @@ -1051,14 +1185,16 @@ image::bsdinstall-netinstall-mirrorselect.png[] 通常、製造メーカーは、 重要な更新のようなそれなりの理由がない限り、マザーボードの BIOS のアップグレードは行わないよう推奨しています。 アップデートの過程で失敗する__可能性があり__、 その場合 BIOS が不完全な状態になり、 コンピュータが動作しない原因となり得るからです。 ==== -システムの起動時に、ハードウェアの検出中にシステムが固まったり、 インストール中におかしな振る舞いをする場合には、 ACPI が原因の可能性があります。 i386 および amd64 プラットフォームにおいて、 FreeBSD はシステムの設定を手助けするシステム ACPI サービスを、 起動時に検出された場合に広く使います。 残念ながら、まだいくつかの不具合が、 ACPI ドライバとシステムのマザーボードおよび BIOS ファームウェア両方に存在しています。 起動ステージ 3 において、ヒント情報 `hint.acpi.0.disabled` を以下のように設定すると ACPI を無効にできます。 +システムの起動時に、ハードウェアの検出中にシステムが固まったり、インストールプロセスでおかしな振る舞いをする場合には、ACPI が原因の可能性があります。 +i386 および amd64 プラットフォームにおいて、 FreeBSD はシステムの設定を手助けするシステム ACPI サービスを、 起動時に検出された場合に広く使います。 残念ながら、まだいくつかの不具合が、 ACPI ドライバとシステムのマザーボードおよび BIOS ファームウェア両方に存在しています。 起動ステージ 3 において、ヒント情報 `hint.acpi.0.disabled` を以下のように設定すると ACPI を無効にできます。 [source,shell] .... - set hint.acpi.0.disabled="1" +set hint.acpi.0.disabled="1" .... -この設定はシステムが起動するたびにリセットされるので、 [.filename]#/boot/loader.conf# ファイルに `hint.acpi.0.disabled="1"` を追加する必要があります。 ブートローダのより詳しい情報については crossref:boot[boot-synopsis,「この章では」] で説明します。 +この設定はシステムが起動するたびにリセットされるので、`/boot/loader.conf` ファイルに `hint.acpi.0.disabled="1"` を追加する必要があります。 +ブートローダのより詳しい情報については crossref:boot[boot-synopsis,FreeBSD の起動のプロセス] で説明します。 [[using-live-cd]] == Live CD を使う diff --git a/documentation/content/ja/books/handbook/config/_index.adoc b/documentation/content/ja/books/handbook/config/_index.adoc index dd78fe412d..5deb8c0518 100644 --- a/documentation/content/ja/books/handbook/config/_index.adoc +++ b/documentation/content/ja/books/handbook/config/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/partiii next: books/handbook/boot showBookMenu: true weight: 15 -path: "/books/handbook/" +params: + path: "/books/handbook/config/" --- [[config-tuning]] diff --git a/documentation/content/ja/books/handbook/cutting-edge/_index.adoc b/documentation/content/ja/books/handbook/cutting-edge/_index.adoc index e3ddb3e644..7856b3bbec 100644 --- a/documentation/content/ja/books/handbook/cutting-edge/_index.adoc +++ b/documentation/content/ja/books/handbook/cutting-edge/_index.adoc @@ -1,13 +1,14 @@ --- -title: 第17章 FreeBSD のアップデートとアップグレード +title: 第16章 FreeBSD のアップデートとアップグレード part: パートIII. システム管理 prev: books/handbook/l10n next: books/handbook/partiv description: freebsd-update もしくは Git を使った FreeBSD システムを最新の状態に更新する方法、ベースシステム全体を再構築しインストールする方法などの説明 tags: ["updating", "upgrading", "documentation", "FreeBSD-STABLE", "FreeBSD-CURRENT", "Security Patches"] showBookMenu: true -weight: 21 -path: "/books/handbook/" +weight: 20 +params: + path: "/books/handbook/cutting-edge/" --- [[updating-upgrading]] @@ -18,7 +19,7 @@ path: "/books/handbook/" :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 17 +:sectnumoffset: 16 :partnums: :source-highlighter: rouge :experimental: @@ -53,16 +54,16 @@ endif::[] あるリリースから次のリリースまでの期間にも、 FreeBSD の開発は休みなく続けられています。 最新の開発ツリーと同期することを好む人がいる一方で、公式のリリース版を好んで使う方もいます。 -しかしながら、公式のリリースといえども、 セキュリティや他の重要な修正のため、時にはアップデートが行われます。 -使用しているバージョンに関わらず、FreeBSD は手元のシステムを最新の開発ツリーと同期するために必要なツールをすべて用意しているので、これらのツールを使ってバージョンのアップグレードを簡単に行うことができます。 +しかしながら、公式のリリースといえども、 セキュリティや他の重要な修正のため、時にはアップデートが必要となります。 +FreeBSD は手元のシステムを最新の開発ツリーと同期するために必要なツールをすべて用意しているので、使用しているバージョンに関わらず、これらのツールを使って簡単にシステムのバージョンをアップグレードできます。 この章では、開発ブランチを追いかける方法、および、FreeBSD システムをアップデートする基本的なツールについて解説します。 -この章を読んで分かるのは: +この章では以下について説明します。 * freebsd-update もしくは Git を使った FreeBSD システムの更新方法 -* インストールされているシステムと、変更が行われていない状態との比較方法。 -* Git またはドキュメント用の ports を使って、 インストールされているドキュメントを最新版にアップデートする方法。 -* 2 つの開発ブランチ、FreeBSD-STABLE と FreeBSD-CURRENT の違い +* インストールされているシステムと、変更が行われていない状態との比較方法 +* Git またはドキュメント用の ports を使って、 インストールされているドキュメントを最新版にアップデートする方法 +* 2 つの開発ブランチ、FreeBSD-STABLE と FreeBSD-CURRENT の違いについて * ベースシステム全体を再構築しインストールする方法 この章を読む前に、以下の準備をしましょう。 @@ -174,6 +175,8 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints このオプションを `yes` に設定すると、`freebsd-update` は `Components` のリストが完全に正しいと判断し、このリスト以外の変更点については取り扱いません。 `freebsd-update` は、効率的に `Components` リストに属するファイルをアップデートします。 +詳細については、man:freebsd-update.conf[5] を参照してください。 + [[freebsdupdate-security-patches]] === セキュリティパッチの適用 @@ -602,7 +605,7 @@ FreeBSD-STABLE を追いかけるには . 新しい FreeBSD-STABLE システムをインストールするには、 crossref:mirrors[mirrors,ミラーサイト] から最近の FreeBSD-STABLE リリースをインストールするか、毎月公開されている FreeBSD-STABLE からビルドされたスナップショットを使ってください。 スナップショットの詳細については、link:https://www.FreeBSD.org/ja/snapshots/[www.freebsd.org/ja/snapshots] をご覧ください。 + -既に FreeBSD が動いているシステムを FreeBSD-STABLE にアップグレードするには、 crossref:mirrors[svn,svn] を使って、希望する開発ブランチのソースをチェックアウしてください。 +既に FreeBSD が動いているシステムを FreeBSD-STABLE にアップグレードするには、`git` を使って、希望する開発ブランチのソースをチェックアウしてください。 `stable/9` といったブランチ名は、link:https://www.FreeBSD.org/releng/[www.freebsd.org/releng] で説明されています。 . FreeBSD-STABLE をコンパイルしたり FreeBSD-STABLE へとアップグレードする前に、 [.filename]#/usr/src/Makefile# を注意深く読み、 <<makeworld>> に書かれている手順に従ってください。 {freebsd-stable} と [.filename]#/usr/src/UPDATING# を読んで、次のリリースへ向けて移ってゆくに当たって、ときどき必要となる既存システムからの新システムの構築手順についての最新情報を得てください。 @@ -614,10 +617,11 @@ FreeBSD は、バージョン情報をカーネルのコンパイル時に埋め man:uname[1] を使ってこの情報を調べることができます。以下はその例です。 [source,shell] .... -% uname -a +% uname -v FreeBSD 14.0-CURRENT #112 main-n247514-031260d64c18: Tue Jun 22 20:43:19 MDT 2021 fred@machine:/usr/home/fred/obj/usr/home/fred/git/head/amd64.amd64/sys/FRED .... -4 番目のフィールドを見ると、いくつかの要素から構成されていることがわかります。 +最後のフィールドから、カーネル名、ビルドを行ったユーザ、およびコンパイルを行った場所がわかります。 +また、4 番目のフィールドは、いくつかの要素から構成されていることがわかります。 [source,shell] .... main-n247514-031260d64c18 @@ -668,14 +672,32 @@ n247514 <.> 以下は FreeBSD をソースから構築してアップデートする典型的な方法についてのクイックリファレンスです。 その後の節では、各プロセスをより詳細に説明します。 +[WARNING] +==== +man:mergemaster[8] から man:etcupdate[8] に移行する際に、初めて man:etcupdate[8] を実行すると、変更点が不適切にマージされ、衝突が起きてしまうことがあります。 +これを避けるには、ソースを更新して新しく buildworld を行う *前に* 以下のステップを行ってください。 + +[source,shell] +.... +# etcupdate extract <.> +# etcupdate diff <.> +.... + +<.> [.filename]#/etc# ファイルを保存するデータベースをブートストラップしてください。 +詳細については、 man:etcupdate[8] を参照してください。 + +<.> ブートストラップ後、差分を確認してください。 +不必要なローカルでの変更点をなくし、将来的なアップデートにおいて、衝突が起きる可能性が低くなるようにしてください。 +==== + [.procedure] ==== -. アップデートおよびビルド +* アップデートおよびビルド + [source,shell] .... # git pull /usr/src <.> -check /usr/src/UPDATING <.> +/usr/src/UPDATING の確認 <.> # cd /usr/src <.> # make -j4 buildworld <.> # make -j4 kernel <.> @@ -743,7 +765,7 @@ origin https://git.freebsd.org/src.git (push) .ソースコードの入手 [NOTE] ==== -`fatal: not a git repository` という出力が出た場合には、ファイルがなかったり、別な方法によりインストールされているので、新しくソースコードをチェックアウトする必要があります。 +`fatal: not a git repository` と出力された場合には、ファイルがなかったり、別な方法によりインストールされているので、新しくソースコードをチェックアウトする必要があります。 [[updating-src-obtaining-src-repopath]] .FreeBSD のバージョンおよびリポジトリブランチ @@ -761,7 +783,9 @@ origin https://git.freebsd.org/src.git (push) |`stable/_X_` | -リリースバージョンに対し、 そのブランチにおけるすべての開発の成果が反映されたものです。 _STABLE_ は、 Applications Binary Interface (ABI) が変更されないことを意味しており、 このブランチの以前のバージョンでコンパイルされたソフトウェアは、 このバージョンでも実行できることを意味しています。 たとえば、FreeBSD 10.1 で実行するようにコンパイルされたソフトウェアは、 FreeBSD 10-STABLE においても実行できます。 +リリースバージョンに対し、そのブランチにおけるすべての開発の成果が反映されたものです。 +_STABLE_ では、Applications Binary Interface (ABI) は変更されないため、このブランチのシステムであれば、以前のバージョンでコンパイルされたソフトウェアを実行できます。 +たとえば、FreeBSD 10.1 で実行するようにコンパイルされたソフトウェアは、その後構築された FreeBSD 10-STABLE 上でも実行できます。 STABLE ブランチは、 時期によってはユーザに影響するようなバグや非互換性を持つことがあります。 これらは通常すぐに修正されます。 diff --git a/documentation/content/ja/books/handbook/desktop/_index.adoc b/documentation/content/ja/books/handbook/desktop/_index.adoc index f5d3415f37..8f65928853 100644 --- a/documentation/content/ja/books/handbook/desktop/_index.adoc +++ b/documentation/content/ja/books/handbook/desktop/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/partii next: books/handbook/multimedia showBookMenu: true weight: 9 -path: "/books/handbook/" +params: + path: "/books/handbook/desktop/" --- [[desktop]] diff --git a/documentation/content/ja/books/handbook/disks/_index.adoc b/documentation/content/ja/books/handbook/disks/_index.adoc index c6754f70ee..9d13abfeb3 100644 --- a/documentation/content/ja/books/handbook/disks/_index.adoc +++ b/documentation/content/ja/books/handbook/disks/_index.adoc @@ -1,11 +1,12 @@ --- -title: 第15章 ストレージ +title: 第14章 ストレージ part: パートIII. システム管理 prev: books/handbook/security next: books/handbook/l10n showBookMenu: true -weight: 19 -path: "/books/handbook/" +weight: 18 +params: + path: "/books/handbook/disks/" --- [[disks]] @@ -16,7 +17,7 @@ path: "/books/handbook/" :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 15 +:sectnumoffset: 14 :partnums: :source-highlighter: rouge :experimental: @@ -64,7 +65,7 @@ endif::[] * フロッピーディスクにバックアップする方法 * スナップショットとは何か、そしてそれを効果的に使用する方法 -[[disks-naming]] +[[disk-naming]] == デバイス名 以下は、FreeBSD で対応している物理記憶デバイスとそれに対応するデバイス名のリストです。 diff --git a/documentation/content/ja/books/handbook/eresources/_index.adoc b/documentation/content/ja/books/handbook/eresources/_index.adoc index f7292c6f84..3742b6321a 100644 --- a/documentation/content/ja/books/handbook/eresources/_index.adoc +++ b/documentation/content/ja/books/handbook/eresources/_index.adoc @@ -3,9 +3,12 @@ title: 付録 C. インターネット上のリソース part: パートV. 付録 prev: books/handbook/bibliography next: books/handbook/pgpkeys +description: ウェブサイト、メーリングリスト、ミラーサイトといったインターネット上のリソース +tags: ["eresources", "Websites", "Mailing Lists", "Usenet", "Newsgroups"] showBookMenu: true -weight: 30 -path: "/books/handbook/" +weight: 29 +params: + path: "/books/handbook/eresources/" --- [appendix] @@ -71,7 +74,8 @@ _FreeBSD メーリングリストにメールを送信できるかどうかを どのメーリングリストに質問を投稿すべきか迷った場合には、 extref:{freebsd-questions-article}[How to get best results from the FreeBSD-questions mailing list] をご覧ください。 -どこのメーリングリストに投稿する場合でも、 メーリングリストを最大限に活用する方法を理解しておいてください。 たとえば、 extref:{mailing-list-faq}[Mailing List Frequently Asked Questions] (FAQ) 文書を読んで、 繰り返し行われる議論を避ける方法を理解してください。 +どこのメーリングリストに投稿する場合でも、メーリングリストを最大限に活用する方法を理解しておいてください。 +たとえば、 extref:{mailing-list-faq}[Mailing List Frequently Asked Questions] (FAQ) 文書を読んで、 繰り返し行われる議論を避ける方法を理解してください。 メーリングリストはいずれもアーカイブされており、それらは link:https://www.FreeBSD.org/search/[FreeBSD World Wide Web server] で検索することができます。 キーワード検索可能なアーカイブの提供は、 良くある質問に対する回答を見つけるすぐれた方法ですから、 質問を投稿する前に調べてみるべきでしょう。 このことは、FreeBSD メーリングリストに送信されたメッセージは、 ずっとアーカイブされることを意味しています。 プライバシーの保護が問題になるような場合には、 使い捨てのメールアドレスを用い、公な情報のみを送ってください。 @@ -200,9 +204,6 @@ _技術的なメーリングリスト:_ 以下のメーリングリストは、 |link:{freebsd-embedded-url}[freebsd-embedded] |組み込みアプリケーションにおける FreeBSD の利用 -|link:{freebsd-eol-url}[freebsd-eol] -|FreeBSD プロジェクトによるサポートが終了した FreeBSD に関連したソフトウェアのピアサポート - |link:{freebsd-emulation-url}[freebsd-emulation] |Linux/MS-DOS(R)/Windows(R) のような他のシステムのエミュレーション @@ -263,9 +264,6 @@ _技術的なメーリングリスト:_ 以下のメーリングリストは、 |link:{freebsd-kde-url}[freebsd-kde] |KDE および KDE アプリケーションの移植 -|link:{freebsd-lfs-url}[freebsd-lfs] -|LFS の FreeBSD への移植 - |link:{freebsd-mips-url}[freebsd-mips] |FreeBSD の MIPS(R) への移植 @@ -371,9 +369,6 @@ _技術的なメーリングリスト:_ 以下のメーリングリストは、 |link:{freebsd-threads-url}[freebsd-threads] |FreeBSD のスレッドについて -|link:{freebsd-tilera-url}[freebsd-tilera] -|Tilera ファミリ CPU への FreeBSD の移植 - |link:{freebsd-tokenring-url}[freebsd-tokenring] |FreeBSD でのトークンリングのサポート @@ -433,11 +428,6 @@ _メーリングリストのダイジェスト版:_ 上述のメーリングリ _コミットメッセージリスト:_ 以下のメーリングリストは、 ソースツリーのさまざまな領域に対する変更に対するログメッセージを見ることに興味のある人向けです。 -[NOTE] -==== -SVN ログメッセージは SVN のメーリングリストに送られます。 -==== - [.informaltable] [cols="1,1,1", frame="none", options="header"] |=== @@ -479,7 +469,8 @@ _SVN メーリングリスト:_ 以下のメーリングリストは、 ソー [NOTE] ==== SVN ログメッセージのみが SVN のメーリングリストに送られます。 -SVN から Git への移行後は、以下のメーリングリストには、新しいコミットメッセージは送られない予定です。 +SVN から Git への移行後は、以下のメーリングリストには、新しいコミットメッセージは送られませんし、購読もできません。 +以下の一覧のリンクは、各メーリングリストのアーカイブへのリンクです。 ==== [.informaltable] @@ -593,7 +584,8 @@ SVN から Git への移行後は、以下のメーリングリストには、 メーリングリストにメールを送るには、 mailto:listname@FreeBSD.org[listname@FreeBSD.org] にメールを送ってください。すると、 メーリングリストに登録されている世界中のメンバに再配布されます。 -メーリングリストから登録を解除する場合は、 メーリングリストで配信されているメールの最後にある URL をクリックしてください。または、 mailto:listname-unsubscribe@FreeBSD.org[listname-unsubscribe@FreeBSD.org] にメールを送信することでも登録を解除できます。 +メーリングリストから登録を解除する場合は、メーリングリストで配信されているメールの最後にある URL をクリックしてください。 +または、 mailto:listname+unsubscribe@FreeBSD.org[listname+unsubscribe@FreeBSD.org] にメールを送信することでも登録を解除できます。 技術的なメーリングリストでは、 技術的な議論を保つようにすることが重要です。 もし、重要なアナウンスのみを受け取りたいのであれば、 {freebsd-announce} への参加をお勧めします。 ここには、あまりたくさんのメールは流れません。 @@ -728,11 +720,6 @@ _Enlightenment_ + FreeBSD システムでの Enlightenment デスクトップ環境に関連した議論。 技術的なメーリングリストなので、 完全に技術的な内容が要求されます。 -link:{freebsd-eol-url}[freebsd-eol]:: -_FreeBSD プロジェクトによるサポートが終了した FreeBSD に関連したソフトウェアのピアサポート_ -+ -FreeBSD プロジェクトによる、 セキュリティアドバイザリおよびパッチの公式サポートが終了した FreeBSD 関連ソフトウェアのピアサポートを提供したり利用することに興味を持っている人達のためのメーリングリストです。 - link:{freebsd-firewire-url}[freebsd-firewire]:: _FireWire(R) (iLink, IEEE 1394)_ + @@ -1077,8 +1064,6 @@ HTML と plain テキストを両方含むメールでは、 HTML の部分が <<central-mirrors, {central}>>, <<armenia-mirrors, {mirrors-armenia}>>, <<australia-mirrors, {mirrors-australia}>>, <<austria-mirrors, {mirrors-austria}>>, <<czech-republic-mirrors, {mirrors-czech}>>, <<denmark-mirrors, {mirrors-denmark}>>, <<finland-mirrors, {mirrors-finland}>>, <<france-mirrors, {mirrors-france}>>, <<germany-mirrors, {mirrors-germany}>>, <<hong-kong-mirrors, {mirrors-hongkong}>>, <<ireland-mirrors, {mirrors-ireland}>>, <<japan-mirrors, {mirrors-japan}>>, <<latvia-mirrors, {mirrors-latvia}>>, <<lithuania-mirrors, {mirrors-lithuania}>>, <<netherlands-mirrors, {mirrors-netherlands}>>, <<norway-mirrors, {mirrors-norway}>>, <<russia-mirrors, {mirrors-russia}>>, <<slovenia-mirrors, {mirrors-slovenia}>>, <<south-africa-mirrors, {mirrors-south-africa}>>, <<spain-mirrors, {mirrors-spain}>>, <<sweden-mirrors, {mirrors-sweden}>>, <<switzerland-mirrors, {mirrors-switzerland}>>, <<taiwan-mirrors, {mirrors-taiwan}>>, <<uk-mirrors, {mirrors-uk}>>, <<usa-mirrors, {mirrors-us}>>. -(as of UTC) - [[central-mirrors]] *{central}* diff --git a/documentation/content/ja/books/handbook/introduction.adoc b/documentation/content/ja/books/handbook/introduction.adoc new file mode 100644 index 0000000000..7ed57400cc --- /dev/null +++ b/documentation/content/ja/books/handbook/introduction.adoc @@ -0,0 +1,12 @@ +[.abstract-title] +概要 + +FreeBSD へようこそ! このハンドブックは _FreeBSD {rel131-current}-RELEASE_ および _FreeBSD {rel124-current}-RELEASE_ のインストールと日常での使い方について記述したものです。 +本ハンドブックはさまざまな人々による編集の成果で、現在も改編作業中です。 +いま存在するセクションの中には情報が古くなってしまっているものがあります。 +もし、この文書を新しくしたり、 新しい情報の追加に協力したいとお考えなら、 {freebsd-doc} まで電子メールを (英語で) 送ってください。 + +このハンドブックの最新バージョンは https://www.FreeBSD.org/ja/[FreeBSD ウェブサイト] から入手できます。 +以前のバージョンは https://docs.FreeBSD.org/doc/[https://docs.FreeBSD.org/doc/] から入手できます。 +この文書の他の文書形式や圧縮形式は https://download.freebsd.org/doc/[FreeBSD ダウンロードサーバ] や link:./mirrors#mirrors-http[ミラーサイト] からダウンロードできます。 +ハンドブックやその他の文書は、link:https://www.FreeBSD.org/ja/search/[検索ページ] で検索できます。 diff --git a/documentation/content/ja/books/handbook/introduction/_index.adoc b/documentation/content/ja/books/handbook/introduction/_index.adoc index c459c5edc6..c797dba649 100644 --- a/documentation/content/ja/books/handbook/introduction/_index.adoc +++ b/documentation/content/ja/books/handbook/introduction/_index.adoc @@ -7,7 +7,8 @@ description: この章では FreeBSD の歴史、目標、開発モデルなど tags: ["introduction", "synopsis", "about", "Who Uses FreeBSD", "goals", "history"] showBookMenu: true weight: 3 -path: "/books/handbook/" +params: + path: "/books/handbook/introduction/" --- [[introduction]] @@ -107,49 +108,51 @@ FreeBSD は、無料でダウンロードできます。 また、CD-ROM また [[introduction-nutshell-users]] === FreeBSD はどこに使われていますか? -FreeBSD は、ウェブサービスの能力で知られています。 FreeBSD が利用されている代表的なサイトには https://news.ycombinator.com/[Hacker News], http://www.netcraft.com/[Netcraft], http://www.163.com/[NetEase], https://signup.netflix.com/openconnect[Netflix], http://www.sina.com/[Sina], http://www.sony.co.jp/[Sony Japan], http://www.rambler.ru/[Rambler], http://www.yahoo.com/[Yahoo!] および http://www.yandex.ru/[Yandex] があります。 +FreeBSD は、ウェブサービスの能力で知られています。 FreeBSD が利用されている代表的なサイトには link:https://news.ycombinator.com/[Hacker News], link:http://www.netcraft.com/[Netcraft], link:http://www.163.com/[NetEase], link:https://signup.netflix.com/openconnect[Netflix], link:http://www.sina.com/[Sina], link:http://www.sony.co.jp/[Sony Japan], link:http://www.rambler.ru/[Rambler], link:http://www.yahoo.com/[Yahoo!] および link:http://www.yandex.ru/[Yandex] があります。 FreeBSD は、 先進的な機能、高いセキュリティ、および定期的なリリースサイクル、 そして寛容なライセンスにより、 多くの商用およびオープンソースのアプライアンス、 デバイスおよび製品を構築するプラットフォームとして利用されています。 世界最大規模の多くの IT 会社が FreeBSD を使っています。 -* http://www.apache.org/[Apache] - Apache ソフトウェア財団は、 1.4 百万回を超えるコミットというおそらく世界で最も大規模な SVN リポジトリを含む、数多くの公式のインフラストラクチャで FreeBSD を使っています。 -* http://www.apple.com/[Apple] - OS X は、 FreeBSD から、ネットワークスタック、仮想ファイルシステム、 そして多くのユーザランドコンポーネントを取り入れています。 Apple iOS も FreeBSD から取り入れた要素を含んでいます。 -* http://www.cisco.com/[Cisco] - IronPort ネットワークセキュリティおよびアンチスパムアプライアンスは、 改造された FreeBSD カーネルで動いています。 -* http://www.citrix.com/[Citrix] - NetScaler の一連のセキュリティアプライアンスは、 FreeBSD シェルとともに 4-7 レイヤのロードバランス、 コンテントキャシュ、アプリケーションファイアウォール、 セキュリティ VPN およびモバイルクライド・ネットワークアクセスを提供します。 -* https://www.emc.com/isilon[Dell EMC Isilon] - Isilon 社のエンタープライズストレージアプライアンスは、FreeBSD ベースです。 寛大な FreeBSD ライセンスのおかげで、Isilon は、 彼らの知的財産物をカーネルに統合することができるため、 オペレーティングシステムではなく、 製品そのものに焦点を当てた開発が可能となっています。 -* http://www.quest.com/KACE[Quest KACE] - KACE システム管理アプライアンスでは、 FreeBSD が用いられています。信頼性、 スケーラビリティおよび継続的な開発をサポートしているコミュニティが評価され採用されています。 -* http://www.ixsystems.com/[iXsystems] - 統合ストレージアプライアンスの TrueNAS シリーズは FreeBSD ベースです。 -* http://www.juniper.net/[Juniper] - Juniper のすべてのネットワークギア (ルータ、スイッチ、セキュリティおよびネットワークアプライアンス) を動かしている JunOS オペレーティングシステムは、 FreeBSD ベースです。 Juniper は、FreeBSD プロジェクトと商用製品を提供しているベンダとの間で協力関係が成功している数多くのベンダのひとつです。 将来 FreeBSD の新しい機能を JunOS へと統合する際の複雑さを減らすため、 Juniper で作成された改良点は、FreeBSD に取り込まれています。 -* http://www.mcafee.com/[McAfee] - Sidewinder などの McAfee エンタープライズファイアウォール製品のベースである SecurOS は FreeBSD ベースです。 -* http://www.netapp.com/[NetApp] - ストレージアプライアンスの Data ONTAP GX シリーズは、FreeBSD ベースです。 NetApp は、新しい BSD ライセンスのハイパーバイザである bhyve などの数多くの機能を FreeBSD プロジェクトに還元しています。 -* http://www.netflix.com/[Netflix] - Netflix が顧客へのストリームムービーに使用している OpenConnect アプライアンスは、FreeBSD ベースです。 Netflix は、コードベースに対し多大な貢献を行っており、 FreeBSD のメインラインからの差分がゼロになるように作業を行っています。 Netflix OpenConnect アプライアンスは、 北米の全インターネットトラフィックの 32% の配送を受け持っています。 -* http://www.sandvine.com/[Sandvine] - Sandvine は、 ハイパフォーマンスでリアルタイムのネットワークプロセッシングプラットフォームのベースに FreeBSD を使用しています。このプラットフォームは、 彼らのインテリジェントネットワークポリシーコントロール製品を構成しています。 -* http://www.sony.com/[Sony] - PlayStation 4 のゲームコンソールは、 FreeBSD の改良版が動いています。 -* http://www.sophos.com/[Sophos] - Sophos Email アプライアンス製品は、強化された FreeBSD がベースです。 インバウンドメールに対してスパムやウィルススキャンを行う一方で、 アウトバウンドメールがマルウェアではないか、また、 機密情報がアクシデントで漏洩してしまわないようにモニタします。 -* http://www.spectralogic.com/[Spectra Logic] - アーカイブグレードストレージアプライアンスの nTier シリーズは、FreeBSD および OpenZFS が動いています。 -* https://www.stormshield.com[Stormshield] - Stormshield ネットワークセキュリティアプライアンスは、 強化された FreeBSD がベースです。 BSD ライセンスが、彼らの知的財産のシステムへの統合を可能にする一方で、 コミュニティに非常に多くの興味深い開発結果をもたらしてくれます。 -* http://www.weather.com/[The Weather Channel] - 各ローカルケーブルプロバイダのヘッドエンドにインストールされていて、 ローカルの天気予報をケーブル TV ネットワークプログラムに送る IntelliStar アプライアンスでは FreeBSD が動いています。 -* http://www.verisign.com/[Verisign] - Verisign は .com および .net ルートドメインレジストリおよび関連する DNS インフラストラクチャの運用に責任を持っています。 彼らのインフラストラクチャに一般的な障害点がないように、FreeBSD を含むさまざまなネットワークオペレーティングシステムに信頼を寄せています。 -* http://www.voxer.com/[Voxer] - Voxer のモバイルボイスメッセージのプラットフォームでは、 ZFS が FreeBSD 上で動いています。 Voxer は、Solaris から派生したオペレーティングシステムから、 FreeBSD へと移行しました。優れた文書、 幅広く活動的なコミュニティ、 そして開発者にとって好意的な環境がその理由です。 ZFS および DTrace といった決定的な機能に加え、 FreeBSD では、 ZFS が TRIM に対応しています。 -* https://fudosecurity.com/en/[Fudo セキュリティ] - FUDO セキュリティアプライアンスは、 エンタープライズおよびシステムの管理者に対し、 モニタ、コントロール、レコードおよび audit コントラクタを提供します。 ZFS, GELI, Capsicum, HAST および auditdistd といった FreeBSD の最良なセキュリティ機能がベースとなっています。 +* link:http://www.apache.org/[Apache] - Apache ソフトウェア財団は、 1.4 百万回を超えるコミットというおそらく世界で最も大規模な SVN リポジトリを含む、数多くの公式のインフラストラクチャで FreeBSD を使っています。 +* link:http://www.apple.com/[Apple] - Apple により提供されている最近のオペレーションシステムは、FreeBSD からプロセスモデル、ネットワークスタック、仮想ファイルシステム、ライブラリ、マニュアルページ、そしてコマンドラインユーティリティについてのコードを取り入れています。 +* link:http://www.cisco.com/[Cisco] - IronPort ネットワークセキュリティおよびアンチスパムアプライアンスは、 改造された FreeBSD カーネルで動いています。 +* link:http://www.citrix.com/[Citrix] - NetScaler の一連のセキュリティアプライアンスは、 FreeBSD シェルとともに 4-7 レイヤのロードバランス、 コンテントキャシュ、アプリケーションファイアウォール、 セキュリティ VPN およびモバイルクライド・ネットワークアクセスを提供します。 +* link:https://www.emc.com/isilon[Dell EMC Isilon] - Isilon 社のエンタープライズストレージアプライアンスは、FreeBSD ベースです。 寛大な FreeBSD ライセンスのおかげで、Isilon は、 彼らの知的財産物をカーネルに統合することができるため、 オペレーティングシステムではなく、 製品そのものに焦点を当てた開発が可能となっています。 +* link:http://www.quest.com/KACE[Quest KACE] - KACE システム管理アプライアンスでは、 FreeBSD が用いられています。信頼性、 スケーラビリティおよび継続的な開発をサポートしているコミュニティが評価され採用されています。 +* link:http://www.ixsystems.com/[iXsystems] - 統合ストレージアプライアンスの TrueNAS シリーズは FreeBSD ベースです。 +* link:http://www.juniper.net/[Juniper] - Juniper のすべてのネットワークギア (ルータ、スイッチ、セキュリティおよびネットワークアプライアンス) を動かしている JunOS オペレーティングシステムは、 FreeBSD ベースです。 Juniper は、FreeBSD プロジェクトと商用製品を提供しているベンダとの間で協力関係が成功している数多くのベンダのひとつです。 将来 FreeBSD の新しい機能を JunOS へと統合する際の複雑さを減らすため、 Juniper で作成された改良点は、FreeBSD に取り込まれています。 +* link:http://www.mcafee.com/[McAfee] - Sidewinder などの McAfee エンタープライズファイアウォール製品のベースである SecurOS は FreeBSD ベースです。 +* link:http://www.netapp.com/[NetApp] - ストレージアプライアンスの Data ONTAP GX シリーズは、FreeBSD ベースです。 NetApp は、新しい BSD ライセンスのハイパーバイザである bhyve などの数多くの機能を FreeBSD プロジェクトに還元しています。 +* link:http://www.netflix.com/[Netflix] - Netflix が顧客へのストリームムービーに使用している OpenConnect アプライアンスは、FreeBSD ベースです。 Netflix は、コードベースに対し多大な貢献を行っており、 FreeBSD のメインラインからの差分がゼロになるように作業を行っています。 Netflix OpenConnect アプライアンスは、 北米の全インターネットトラフィックの 32% の配送を受け持っています。 +* link:http://www.sandvine.com/[Sandvine] - Sandvine は、 ハイパフォーマンスでリアルタイムのネットワークプロセッシングプラットフォームのベースに FreeBSD を使用しています。このプラットフォームは、 彼らのインテリジェントネットワークポリシーコントロール製品を構成しています。 +* link:http://www.sony.com/[Sony] - PlayStation Vita, PlayStation 4 および PlayStation 5 のゲームコンソールは、 FreeBSD の改良版が動いています。 +* link:http://www.sophos.com/[Sophos] - Sophos Email アプライアンス製品は、強化された FreeBSD がベースです。 インバウンドメールに対してスパムやウィルススキャンを行う一方で、 アウトバウンドメールがマルウェアではないか、また、 機密情報がアクシデントで漏洩してしまわないようにモニタします。 +* link:http://www.spectralogic.com/[Spectra Logic] - アーカイブグレードストレージアプライアンスの nTier シリーズは、FreeBSD および OpenZFS が動いています。 +* link:https://www.stormshield.com[Stormshield] - Stormshield ネットワークセキュリティアプライアンスは、 強化された FreeBSD がベースです。 BSD ライセンスが、彼らの知的財産のシステムへの統合を可能にする一方で、 コミュニティに非常に多くの興味深い開発結果をもたらしてくれます。 +* link:http://www.weather.com/[The Weather Channel] - 各ローカルケーブルプロバイダのヘッドエンドにインストールされていて、 ローカルの天気予報をケーブル TV ネットワークプログラムに送る IntelliStar アプライアンスでは FreeBSD が動いています。 +* link:http://www.verisign.com/[Verisign] - Verisign は .com および .net ルートドメインレジストリおよび関連する DNS インフラストラクチャの運用に責任を持っています。 彼らのインフラストラクチャに一般的な障害点がないように、FreeBSD を含むさまざまなネットワークオペレーティングシステムに信頼を寄せています。 +* link:http://www.voxer.com/[Voxer] - Voxer のモバイルボイスメッセージのプラットフォームでは、 ZFS が FreeBSD 上で動いています。 Voxer は、Solaris から派生したオペレーティングシステムから、 FreeBSD へと移行しました。優れた文書、 幅広く活動的なコミュニティ、 そして開発者にとって好意的な環境がその理由です。 ZFS および DTrace といった決定的な機能に加え、 FreeBSD では、 ZFS が TRIM に対応しています。 +* link:https://fudosecurity.com/en/[Fudo セキュリティ] - FUDO セキュリティアプライアンスは、 エンタープライズおよびシステムの管理者に対し、 モニタ、コントロール、レコードおよび audit コントラクタを提供します。 ZFS, GELI, Capsicum, HAST および auditdistd といった FreeBSD の最良なセキュリティ機能がベースとなっています。 また、FreeBSD は関連したオープンソースプロジェクトを数多く生み出しています。 -* http://bsdrp.net/[BSD Router] - 広く使われているエンタープライズルータの置き換えとなるような FreeBSD ベースのルータで、標準的な PC ハードウェアで動作するように設計されています。 -* https://www.truenas.com/[TrueNAS] は、ネットワークアタッチトストレージ (NAS) ソフトウェアです。 +* link:http://bsdrp.net/[BSD Router] - 広く使われているエンタープライズルータの置き換えとなるような FreeBSD ベースのルータで、標準的な PC ハードウェアで動作するように設計されています。 +* link:https://www.truenas.com/[TrueNAS] は、ネットワークアタッチトストレージ (NAS) ソフトウェアです。 データの共有およびランサムウェアやマルウェアといった現代の脅威からデータを保護します。 TrueNAS を使うことで、ユーザおよびクライアントデバイスは、仮想化および共有プロトコルを通して共有データに容易にアクセスできます。 -* https://ghostbsd.org/[GhostBSD] - は、FreeBSD から派生しました。 GhostBSD は、GTK 環境を使用し、 美しい見た目や使い勝手の良さを現代の BSD プラットフォームに実現し、 自然でネイティブな UNIX(R) 環境を提供します。 -* http://mfsbsd.vx.sk/[mfsBSD] - メモリから完全に実行可能な FreeBSD システムのイメージを構築するためのツールキットです。 -* https://xigmanas.com/[XigmaNAS] - PHP によるウェブインタフェースを搭載した FreeBSD ベースのファイルサーバのディストリビューションです。 -* http://www.opnsense.org/[OPNSense] - OPNsense は、オープンソースの使いやすく構築が簡単な FreeBSD ベースのファイアウォールおよびルータのプラットフォームです。 OPNsense は、 高価な商用のファイアウォールや標準で利用可能なほとんどの機能を持っています。 オープンで検証可能なソースと共に、 商品が提供している豊富な機能のセットを提供します。 -* https://www.midnightbsd.org[MidnightBSD] - は、 BSD から派生したオペレーティングシステムで、 デスクトップユーザを念頭において開発されています。 このオペレーティングシステムには、 メール、ウェブブラウザ、ワードプロセッサ、ゲームといった、 日々の生活で必要と思われるすべてのソフトウェアが含まれています。 -* https://nomadbsd.org[NomadBSD] - は、FreeBSD ベースの USB フラッシュドライブのための永続的な live システムです。 +* link:https://ghostbsd.org/[GhostBSD] は、FreeBSD から派生しており、GTK 環境を使用して美しい見た目や使い勝手の良さを現代の BSD プラットフォームに実現し、自然でネイティブな UNIX(R) 環境を提供します。 +* link:http://mfsbsd.vx.sk/[mfsBSD] - メモリから完全に実行可能な FreeBSD システムのイメージを構築するためのツールキットです。 +* link:https://xigmanas.com/[XigmaNAS] - PHP によるウェブインタフェースを搭載した FreeBSD ベースのファイルサーバのディストリビューションです。 +* link:http://www.opnsense.org/[OPNSense] は、オープンソースの使いやすく構築が簡単な FreeBSD ベースのファイアウォールおよびルータのプラットフォームです。 OPNsense は、 高価な商用のファイアウォールや標準で利用可能なほとんどの機能を持っています。 オープンで検証可能なソースと共に、 商品が提供している豊富な機能のセットを提供します。 +* link:https://www.midnightbsd.org[MidnightBSD] は、BSD から派生したオペレーティングシステムで、デスクトップユーザを念頭において開発されています。 +このオペレーティングシステムには、メール、ウェブブラウザ、ワードプロセッサ、ゲームといった、日々の生活で必要と思われるすべてのソフトウェアが含まれています。 +* link:https://nomadbsd.org[NomadBSD] は、FreeBSD ベースの USB フラッシュドライブのための永続的な live システムです。 ハードウェアを自動的に認識してセットアップを行い、すぐにデスクトップシステムとして使えるように設定します。 データリカバリ、教育および FreeBSD のハードウェア互換性の試験にも使用できます。 -* http://www.pfsense.org/[pfSense] - 数多くの機能および拡張 IPv6 サポートを持つ FreeBSD ベースのファイアウォールディストリビューションです。 -* http://zrouter.org/[ZRouter] - FreeBSD ベースの組み込みデバイス用のオープンソースのファームウェアです。 いつでも購入できるようなルータ上のプロプリエタリのファームウェアの置き換えとなるように設計されています。 +* link:http://www.pfsense.org/[pfSense] - 数多くの機能および拡張 IPv6 サポートを持つ FreeBSD ベースのファイアウォールディストリビューションです。 +* link:http://zrouter.org/[ZRouter] - FreeBSD ベースの組み込みデバイス用のオープンソースのファームウェアです。 いつでも購入できるようなルータ上のプロプリエタリのファームウェアの置き換えとなるように設計されています。 -FreeBSD Foundation のウェブサイトでは、link:https://www.freebsdfoundation.org/about/testimonials/[FreeBSD を製品やサービスのベースに利用している会社の声] が紹介されています。 Wikipedia にも link:http://en.wikipedia.org/wiki/List_of_products_based_on_FreeBSD[FreeBSD ベースの製品のリスト] がまとめられています。 +FreeBSD Foundation のウェブサイトでは、link:https://www.freebsdfoundation.org/about/testimonials/[FreeBSD を製品やサービスのベースに利用している会社の声] が紹介されています。 +Wikipedia にも link:http://en.wikipedia.org/wiki/List_of_products_based_on_FreeBSD[FreeBSD ベースの製品のリスト] がまとめられています。 [[history]] == FreeBSD プロジェクトについて @@ -189,20 +192,20 @@ FreeBSD プロジェクトの目的は、いかなる用途にも使用でき、 [[development]] === FreeBSD の開発モデル -FreeBSD の開発は非常に開かれた、柔軟性のあるプロセスです。 +FreeBSD は extref:{dev-model}[非常に開かれた、柔軟性のあるプロセス] により開発されています。 extref:{contributors}[貢献者リスト] を見ていただければわかるとおり、FreeBSD は文字通り世界中の何千という人々の努力によって開発されています。 FreeBSD の開発環境は、この何千という開発者がインターネット経由で共同作業できるようになっているのです。 -新しい開発者はいつでも大歓迎ですので、link:{freebsd-hackers} にメールを送ってください。 -{freebsd-announce} もありますので、他の FreeBSD ユーザに自分のやっていることを宣伝したい時にはどうぞ使ってください。 +新しいボランティアはいつでも大歓迎です。 +また、より密接に関わりたいと考える方は extref:{contributing}[FreeBSD への貢献] という文書をご覧ください。 あと、FreeBSD プロジェクトとその開発プロセスについて、 どなたにも知っていていただきたいのは以下のようなことです。 Git リポジトリ[[development-cvs-repository]]:: -長年にわたり FreeBSD のソースツリーは、 ソースコード管理用のフリーソフトウェアである http://www.nongnu.org/cvs/[CVS] (Concurrent Versions System) によってメンテナンスされてきました。 -2008 年 6 月、プロジェクトはソースコード管理のシステムを https://subversion.apache.org[SVN] (Subversion) に移行しました。 +長年にわたり FreeBSD のソースツリーは、 ソースコード管理用のフリーソフトウェアである link:http://www.nongnu.org/cvs/[CVS] (Concurrent Versions System) によってメンテナンスされてきました。 +2008 年 6 月、プロジェクトはソースコード管理のシステムを link:https://subversion.apache.org[SVN] (Subversion) に移行しました。 ソースツリーの急速な増加や、これまでに蓄積された膨大な量の履歴によって、CVS の持つ技術的な限界が明かになってきたためです。 ドキュメンテーションプロジェクトと Ports Collection リポジトリも、それぞれ 2012 年 5 月と 7 月に CVS から SVN へと移行しました。 -そして 2020年 12 月、プロジェクトは https://www.freebsd.org/status/report-2020-10-2020-12.html#Git-Migration-Working-Group[ソースおよびドキュメンテーションのリポジトリ] を https://git-scm.com/[Git] へ移行し、2021 年 4 月に https://www.freebsd.org/status/report-2021-04-2021-06/#_git_migration_working_group[Ports] を移行しました。 +そして 2020年 12 月、プロジェクトは link:https://www.freebsd.org/status/report-2020-10-2020-12.html#Git-Migration-Working-Group[ソースおよびドキュメンテーションのリポジトリ] を link:https://git-scm.com/[Git] へ移行し、2021 年 4 月に link:https://www.freebsd.org/status/report-2021-04-2021-06/#_git_migration_working_group[Ports] を移行しました。 FreeBSD `src/` リポジトリを取得するための情報は crossref:cutting-edge[synching,ソースコードの入手] の章を、 FreeBSD Ports Collection を取得するための詳細については crossref:ports[ports-using,Ports Collection の利用] の章をご覧ください。 ソースツリー管理者[[development-committers]]:: @@ -211,7 +214,11 @@ _コミッター (committers)_ は Git リポジトリへの _push 権限_ を FreeBSD メーリングリスト、IRC チャネルまたはフォーラムは、その問題がバグかどうかを確認する助けとなりますので、障害報告を提出する前に、これらを使って確認してください。 FreeBSD コアチーム[[development-core]]:: -_FreeBSD コアチーム_ は FreeBSD プロジェクトが会社だとすると取締役会にあたるものです。 コアチームとして一番重要な役割は FreeBSD プロジェクトが全体としてよい方向に向かっていることを確認することです。 責任感あふれる開発者を上記のソースツリー管理者として招くこと、 また仕事上の都合などでコアチームをやめた人たちの後任を見つけることもコアチームの役割です。 現在のコアチームは FreeBSD 開発者 (committer) の中から 2020 年 6 月に選挙によって選出されました。 コアチームを選出するための選挙は、2 年ごとに行なわれています。 +_FreeBSD コアチーム_ は FreeBSD プロジェクトが会社だとすると取締役会にあたるものです。 +コアチームとして一番重要な役割は FreeBSD プロジェクトが全体としてよい方向に向かっていることを確認することです。 +責任感あふれる開発者を上記のソースツリー管理者として招くこと、 また仕事上の都合などでコアチームをやめた人たちの後任を見つけることもコアチームの役割です。 +現在のコアチームは FreeBSD 開発者 (committer) の中から 2022 年 5 月に選挙によって選出されました。 +コアチームを選出するための選挙は、2 年ごとに行なわれています。 + [NOTE] @@ -219,22 +226,42 @@ _FreeBSD コアチーム_ は FreeBSD プロジェクトが会社だとすると 忘れてほしくないのは、多くの開発者同様に、 コアチームのほとんどは FreeBSD に対してボランティアの立場であり、 FreeBSD プロジェクトからは何ら金銭的な支援を受けていない、 ということです。ですから、 ここでの"責任"は "保証されたサポート"ではありません。 そういう意味で、上記の"取締役会" という例えはあまりよくないかもしれません。むしろ、FreeBSD のために人生を棒に振ってしまった人の集まりといった方が正しいかも...。 ==== +The FreeBSD Foundation[[development-foundation]]:: +The link:https://freebsdfoundation.org[FreeBSD Foundation] は、FreeBSD プロジェクトおよびコミュニティを全世界的にサポートしたり促進することを目的としたアメリカ合衆国における 501(c)(3) に認定された非営利団体です。 +この Foundation は、ソフトウェア開発に対するプロジェクトの助成を通じて資金を提供したり、緊急の事態に対する迅速な対応や新しい特徴や機能の実装に対して、スタッフを提供します。 +FreeBSD のインフラストラクチャの改善および維持する目的でハードウェアを購入したり、テストカバレッジ、継続的インテグレーションおよび自動化の改善のためにスタッフを雇用しています。 +世界中で開催されている技術的な会議やイベントにおいて、FreeBSD をプロモーションすることで FreeBSD を宣伝しています。 +また、ワークショップ、教育的な教材やプレゼンテーションを提供して、より多くのユーザや FreeBSD の貢献者をリクルートしています。 +さらに、契約の締結、ライセンス契約、およびその他の法的主体必要となる協定において FreeBSD プロジェクトを代表しています。 + その他のコントリビュータ:: -最後になりますが、 もっとも重要で多数をしめる開発者はフィードバックやバグフィクスをどんどん送ってくれるユーザ自身です。 FreeBSD の開発に関わっていきたいという人は、 議論の場である {freebsd-hackers} に参加するとよいでしょう。 FreeBSD 関連メーリングリストに関する詳細は、 crossref:eresources[eresources,インターネット上のリソース] をご覧ください。 +最後になりますが、 もっとも重要で多数をしめる開発者はフィードバックやバグフィクスをどんどん送ってくれるユーザ自身です。 +FreeBSD のベースシステムの開発に関わっていきたいという人は、 議論の場である {freebsd-hackers} に参加するとよいでしょう。 +サードパーティ製のアプリケーションの移植に関わる議論は、 {freebsd-ports} で行われています。 +FreeBSD のメーリングリストに関する詳細は、 crossref:eresources[eresources,インターネット上のリソース] をご覧ください。 + extref:{contributors}[FreeBSD への貢献者リスト] は日に日に長くなっています。 -あなたも今日、何か送ることからはじめてみませんか? -+ -もちろん FreeBSD に貢献するには、 コードを書くほかにもいろいろな方法があります。 助けが求められている分野については、link:https://www.FreeBSD.org/[FreeBSD プロジェクトのウェブサイト] をご覧ください。 +あなたも今日、extref:{contributing}[FreeBSD へ何か送ることからはじめてみませんか]? +もちろん、コードを書くほかにもいろいろな方法があります! -ひとことで言うと、FreeBSD の開発組織はゆるやかな同心円状になっています。 ともすると中央集権的に見えがちなこの組織は、 FreeBSD の _ユーザ_ がきちんと管理されたコードベースを 容易に追いかけられるようにデザインされているもので、 貢献したいという人を締め出す意図は全くありません! 私たちの目標は安定したオペレーティングシステムと 簡単にインストールして使うことのできる crossref:ports[ports,アプリケーション]を提供することです。 この方法は、それを達成するために非常にうまくはたらきます。 +ひとことで言うと、FreeBSD の開発組織はゆるやかな同心円状になっています。 +ともすると中央集権的に見えがちなこの組織は、 FreeBSD の _ユーザ_ がきちんと管理されたコードベースを 容易に追いかけられるようにデザインされているもので、 貢献したいという人を締め出す意図は全くありません! +私たちの目標は安定したオペレーティングシステムと 簡単にインストールして使うことのできる crossref:ports[ports,アプリケーション]を提供することです。 +この方法は、それを達成するために非常にうまくはたらきます。 これから FreeBSD の開発にたずさわろうという人に、 私たちが望むことはただ一つです。 FreeBSD の成功を継続的なものにするために、 現在の開発者と同じような情熱を持って接してください! [[third-party-programs]] === サードパーティ製プログラム -FreeBSD では基本配布セットに加え、 移植されたソフトウェア集として数千の人気の高いプログラムを提供しています。 この文書を書いている時点で {numports} 以上の ports (移植ソフトウェア) が存在します。 ports には http サーバから、ゲーム、言語、 エディタまでありとあらゆるものが含まれています。 ports はオリジナルソースに対する "差分"という形で表現されており、 Ports Collection 全体でも {ports-size} 程度にしかなりません。 ports をコンパイルするには、 インストールしたいと思っているプログラムのディレクトリに移動し、 `make install` とすると、 あとはすべてシステムがやってくれます。 どの ports もオリジナルの配布セットを動的に取ってくるので、 ディスクは構築したいと思っている ports の分だけを準備しておけば十分です。 ほとんどの ports は、すでにコンパイルされた状態で "package" として提供されており、 ソースコードからコンパイルしたくない場合、これを使うと (`pkg install` というコマンドで) 簡単にインストールできます。 package と ports に関する詳細は、 crossref:ports[ports,アプリケーションのインストール - packages と ports] をご覧ください。 +FreeBSD では基本配布セットに加え、 移植されたソフトウェア集として数千の人気の高いプログラムを提供しています。 +ports には HTTP サーバから、ゲーム、言語、 エディタまでありとあらゆるものが含まれています。 +{numports} 以上の ports (移植ソフトウェア) が存在します。 +Ports Collection 全体でも {ports-size} 程度にしかなりません。 +ports をコンパイルするには、 インストールしたいと思っているプログラムのディレクトリに移動し、 `make install` とすると、 あとはすべてシステムがやってくれます。 +どの ports もオリジナルの配布セットを動的に取ってくるので、 ディスクは構築したいと思っている ports の分だけを準備しておけば十分です。 +ほとんどの ports は、すでにコンパイルされた状態で "package" として提供されており、ソースコードからコンパイルしたくない場合、これを使うと (`pkg install` というコマンドで) 簡単にインストールできます。 +package と ports に関する詳細は、 crossref:ports[ports,アプリケーションのインストール - packages と ports] をご覧ください。 === ドキュメント @@ -254,4 +281,4 @@ FreeBSD ハンドブック (英文オリジナル):: FreeBSD に関する FAQ (英文オリジナル):: [.filename]#link:file://localhost/usr/local/share/doc/freebsd/en/books/faq/book.html[/usr/local/share/doc/freebsd/en/books/faq/book.html]# -最新版は常に link:https://www.FreeBSD.org/[https://www.FreeBSD.org/] にありますので、こちらも参照してください。 +最新版の文書は常に link:https://docs.FreeBSD.org/[https://docs.FreeBSD.org/] にありますので、こちらも参照してください。 diff --git a/documentation/content/ja/books/handbook/kernelconfig/_index.adoc b/documentation/content/ja/books/handbook/kernelconfig/_index.adoc index c35442f8a7..9fbe5de71e 100644 --- a/documentation/content/ja/books/handbook/kernelconfig/_index.adoc +++ b/documentation/content/ja/books/handbook/kernelconfig/_index.adoc @@ -3,9 +3,12 @@ title: 第8章 FreeBSD カーネルのコンフィグレーション part: パートII. 日々の生活 prev: books/handbook/multimedia next: books/handbook/printing +description: この章では、FreeBSD カーネルの設定方法、いつカスタムカーネルの構築が必要になるか、ハードウェア一覧の作成方法、カーネルコンフィグレーションファイルのカスタマイズの方法などを扱っています。 +tags: ["configuring", "kernel", "custom kernel", "hardware requirements", "pciconf"] showBookMenu: true weight: 11 -path: "/books/handbook/" +params: + path: "/books/handbook/kernelconfig/" --- [[kernelconfig]] @@ -79,7 +82,10 @@ endif::[] カスタムカーネルを構築する前に、再構築する理由を考えてください。 ある特定のハードウェアに対応する必要がある場合に、 そのハードウェアに対応するためのモジュールがすでに用意されていることがあります。 -カーネルモジュールは [.filename]#/boot/kernel# にあります。モジュールによっては man:kldload[8] により、 すでに実行中のカーネルに動的に読み込まれています。 ほとんどのカーネルドライバには、 読み込み可能なモジュールやマニュアルページが用意されています。 たとえば、man:ath[4] ワイヤレスイーサネットドライバのマニュアルページには以下のような記述があります。 +カーネルモジュールは [.filename]#/boot/kernel# にあります。 +モジュールによっては man:kldload[8] により、すでに実行中のカーネルに動的に読み込まれています。 +ほとんどのカーネルドライバには、読み込み可能なモジュールやマニュアルページが用意されています。 +たとえば、man:ath[4] ワイヤレスネットワークドライバのマニュアルページには以下のような記述があります。 [source,shell] .... @@ -147,7 +153,8 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL) カスタムカーネルのコンフィグレーションファイルを作成し、 カスタムカーネルを構築するには、 FreeBSD の全ソースツリーがまずインストールされている必要があります。 -もし [.filename]#/usr/src/# が存在していなかったり、空であれば、 カーネルのソースはインストールされていません。 crossref:mirrors[svn,「Subversion を使う」] で説明した Subversion を使ってソースをインストールしてください。 +もし [.filename]#/usr/src/# が存在していなかったり、空であれば、 カーネルのソースはインストールされていません。 +crossref:mirrors[git,「Git の利用」] で説明した Git を使ってソースをインストールしてください。 ソースをインストールしたら、 [.filename]#/usr/src/sys# を確認して下さい。 このディレクトリには、いくつものサブディレクトリがあります。 その中には、サポートされている各アーキテクチャ [.filename]#amd64#, [.filename]#i386#, [.filename]#powerpc# および [.filename]#sparc64# のサブディレクトリがあります。 各アーキテクチャのディレクトリ内部にあるファイルはすべてそのアーキテクチャでのみ使用されます。 残りのコードは、アーキテクチャに依存しない、 すべてのプラットフォームで共有されるコードです。 サポートされている各アーキテクチャには、 [.filename]#conf# サブディレクトリがあり、 そのアーキテクチャ用の [.filename]#GENERIC# カーネルコンフィグレーションファイルが用意されています。 @@ -161,11 +168,14 @@ ath_hal(4) - Atheros Hardware Access Layer (HAL) これで、[.filename]#MYKERNEL# を ASCII テキストエディタで編集できます。 初心者に対してより簡単なエディタである ee も FreeBSD とともにインストールされていますが、 デフォルトのエディタは vi です。 -コンフィグレーションファイルのフォーマットはシンプルです。 各行はデバイスやサブシステム、引数、または簡単な説明を含んでいます。 `#` に続くテキストはすべてコメントとして扱われ、 無視されます。 カーネルからデバイスもしくはサブシステムのサポートを外すには、 対応する行の最初に `#` を入れてください。 理解していない行に対しては、`#` を追加したり削除しないでください。 +コンフィグレーションファイルのフォーマットはシンプルです。 +各行はデバイスやサブシステム、引数、または簡単な説明を含んでいます。 +`+#+` に続くテキストはすべてコメントとして扱われ、無視されます。 +カーネルからデバイスもしくはサブシステムのサポートを外すには、対応する行の最初に `+#+` を入れてください。 +理解していない行に対しては、`+#+` を追加したり削除しないでください。 [WARNING] ==== - デバイスやオプションのサポートを外すことは簡単で、 その結果、カーネルを壊すことがあります。 たとえば man:ata[4] ドライバをカーネルコンフィグレーションファイルから除くと、 ATA ディスクドライバを用いているシステムは起動しません。 確信が持てないものについては、 カーネルにサポートを残したままにしてください。 ==== @@ -222,7 +232,7 @@ options IPDIVERT [.procedure] ==== *Procedure: カーネルの構築* - ++ . 以下のディレクトリに移動してください。 + [source,shell] @@ -289,7 +299,9 @@ config: line 17: syntax error + [NOTE] ==== -カーネルの構築中にトラブルが起きた時には、 次回の構築で消されないように、 [.filename]#GENERIC# のコピーや他の正常に起動するカーネルを別の名前で保存するようにしてください。 _kernel.old_ は新しいカーネルをインストールする時に、 その一つ前にインストールした、 うまく動かないかもしれないカーネルで上書きされてしまうため、 起動するカーネルを保存しておくことは重要です。 できる限り早く以下のようにして、 正しく起動するカーネルを含むディレクトリ名に変更してください。 +カーネルのトラブルシューティングを行う時には、 [.filename]#GENERIC# といった正常に起動するカーネルのコピーを保存するようにしてください。 +_kernel.old_ は新しいカーネルをインストールする時に、その一つ前にインストールした、うまく動かないかもしれないカーネルで上書きされてしまうため、起動するカーネルを保存しておくことは重要です。 +できる限り早く以下のようにして、正しく起動するカーネルを含むディレクトリ名に変更してください。 [source,shell] .... diff --git a/documentation/content/ja/books/handbook/l10n/_index.adoc b/documentation/content/ja/books/handbook/l10n/_index.adoc index 21274c0b82..d3d49ae634 100644 --- a/documentation/content/ja/books/handbook/l10n/_index.adoc +++ b/documentation/content/ja/books/handbook/l10n/_index.adoc @@ -1,13 +1,14 @@ --- -title: 第16章 地域化 (localization) - i18n/L10n の利用と設定 +title: 第15章 地域化 (localization) - i18n/L10n の利用と設定 part: パートIII. システム管理 prev: books/handbook/disks next: books/handbook/cutting-edge description: FreeBSD は多くの言語への地域化に対応しており、 ユーザは、英語以外の言語を見たり、入力したり、処理したりできます。 tags: ["i18n", "L10n", "localization", "Locale", "LANG", "MM_CHARSET", "cap_mkdb"] showBookMenu: true -weight: 20 -path: "/books/handbook/" +weight: 19 +params: + path: "/books/handbook/l10n/" --- [[l10n]] @@ -18,7 +19,7 @@ path: "/books/handbook/" :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 16 +:sectnumoffset: 15 :partnums: :source-highlighter: rouge :experimental: diff --git a/documentation/content/ja/books/handbook/linuxemu/_index.adoc b/documentation/content/ja/books/handbook/linuxemu/_index.adoc index d312210be9..6e4fe50371 100644 --- a/documentation/content/ja/books/handbook/linuxemu/_index.adoc +++ b/documentation/content/ja/books/handbook/linuxemu/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/printing next: books/handbook/partiii showBookMenu: true weight: 13 -path: "/books/handbook/" +params: + path: "/books/handbook/linuxemu/" --- [[linuxemu]] diff --git a/documentation/content/ja/books/handbook/mail/_index.adoc b/documentation/content/ja/books/handbook/mail/_index.adoc index cec908a3c6..96d78f045a 100644 --- a/documentation/content/ja/books/handbook/mail/_index.adoc +++ b/documentation/content/ja/books/handbook/mail/_index.adoc @@ -1,11 +1,12 @@ --- -title: 第20章 電子メール +title: 第19章 電子メール part: パートIV. ネットワーク通信 prev: books/handbook/ppp-and-slip next: books/handbook/advanced-networking showBookMenu: true -weight: 25 -path: "/books/handbook/" +weight: 24 +params: + path: "/books/handbook/mail/" --- [[mail]] @@ -16,7 +17,7 @@ path: "/books/handbook/" :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 20 +:sectnumoffset: 19 :partnums: :source-highlighter: rouge :experimental: @@ -404,7 +405,7 @@ FEATURE(use_cw_file) を指定してある場合には sendmail FAQ は http://www.sendmail.org/faq[http://www.sendmail.org/faq] にありますので、 メールの設定に "おかしなこと" があれば常に読んでください。 -=== ダイアルアップ PPPPPP ホストでメールサーバを実行するにはどうしたらいいの? +=== ダイアルアップ PPP ホストでメールサーバを実行するにはどうしたらいいの? LAN 上にある FreeBSD マシンを、 インターネットに接続したいとします。FreeBSD マシンは、その LAN でのメールゲートウェイになります。FreeBSD マシンは専用線接続ではありません (訳注: ダイアルアップ接続など)。 diff --git a/documentation/content/ja/books/handbook/mirrors/_index.adoc b/documentation/content/ja/books/handbook/mirrors/_index.adoc index 59e3898721..2ceff340ff 100644 --- a/documentation/content/ja/books/handbook/mirrors/_index.adoc +++ b/documentation/content/ja/books/handbook/mirrors/_index.adoc @@ -6,8 +6,9 @@ next: books/handbook/bibliography description: "FreeBSD の入手方法: CD および DVD セット, FTP サイト, Git のインストールおよび利用方法" tags: ["入手方法", "CD", "DVD", "FTP", "Git"] showBookMenu: true -weight: 28 -path: "/books/handbook/" +weight: 27 +params: + path: "/books/handbook/mirrors/" --- [appendix] @@ -53,7 +54,7 @@ endif::[] FreeBSD の公式のミラーサイトは、プロジェクトクラスタの管理者により運用されている数多くのコンピュータから構成されています。 GeoDNS により、ユーザには近くの利用可能なミラーが提供されます。 -現在ミラーサイトが置かれている地域は、オーストラリア、ブラジル、日本 (2 つのサイト)、マレーシア、オランダ、南アフリカ、台湾、英国、アメリカ合衆国 (カリフォルニア、ニュージャージーおよびワシントン) です。 +現在ミラーサイトが置かれている地域は、オーストラリア、ブラジル、ドイツ、日本 (2 つのサイト)、マレーシア、オランダ、南アフリカ、台湾、英国、アメリカ合衆国 (カリフォルニア、ニュージャージーおよびワシントン) です。 公式のミラーサービス: @@ -72,6 +73,10 @@ GeoDNS により、ユーザには近くの利用可能なミラーが提供さ | **pkg.FreeBSD.org** | `http` および `https` 経由の man:pkg[8] | man:pkg[8] プログラムにより利用される公式の FreeBSD package リポジトリ + +| **vuxml.FreeBSD.org** / **www.VuXML.org** +| link:https://www.vuxml.org/[https] +| FreeBSD プロジェクトの VuXML ウェブページ。`pkg audit` はこのサービスから脆弱性に関する一覧をダウンロードします。 |=== すべての公式のミラーは、IPv4 および IPv6 に対応しています。 @@ -196,7 +201,7 @@ http://ftp-archive.FreeBSD.org は GeoDNS インフラストラクチャでは | ラトビア icon:envelope[link=mailto:{mirrors-latvia-email}, title="mirror contact"] | ftp.lv.FreeBSD.org -| link:http://ftp.lv.FreeBSD.org/pub/FreeBSD[http] link:ftp://ftp.lv.FreeBSD.org/pub/FreeBSD[ftp] +| link:http://ftp.lv.FreeBSD.org/freebsd[http] link:ftp://ftp.lv.FreeBSD.org/freebsd[ftp] | オランダ icon:envelope[link=mailto:{mirrors-netherlands-email}, title="mirror contact"] | ftp.nl.FreeBSD.org @@ -295,7 +300,7 @@ http://ftp-archive.FreeBSD.org は GeoDNS インフラストラクチャでは ==== 一般的には Git は開発用ツールです。 ユーザは好みに合わせて、FreeBSD ベースシステムのアップデートに `freebsd-update` (crossref:cutting-edge[updating-upgrading-freebsdupdate,“FreeBSD Update”])、 -FreeBSD Ports Collection のアップデートに `portsnap` (crossref:ports[ports-using,“Ports Collection の利用”]を使用できます。 +FreeBSD Ports Collection のアップデートに `git` (crossref:ports[ports-using,“Ports Collection の利用”]を使用できます。 ==== この章では、FreeBSD への Git のインストール方法および FreeBSD ソースコードリポジトリのローカルコピーの作成方法について説明します。 @@ -433,7 +438,7 @@ git リポジトリの `stable/11`, `stable/12` および関連するリリー [NOTE] ==== -一般的には Subversion は開発者向けのツールです。 -ユーザは好みに応じて、FreeBSD のベースシステムのアップデートに `freebsd-update` (crossref:cutting-edge[updating-upgrading-freebsdupdate,「FreeBSD Update」])、Ports Collection のアップデートには `portsnap` (crossref:ports[ports-using,「Ports Collection の利用」]) を使用できます。 +ユーザは好みに応じて、FreeBSD のベースシステムのアップデートに `freebsd-update` (crossref:cutting-edge[updating-upgrading-freebsdupdate,「FreeBSD Update」])、Ports Collection のアップデートには `git` (crossref:ports[ports-using,「Ports Collection の利用」]) を使用できます。 2021 年 3 月以降、subversion はレガシーブランチ (`stable/11` および `stable/12`) でのみ使用されます。 ==== diff --git a/documentation/content/ja/books/handbook/multimedia/_index.adoc b/documentation/content/ja/books/handbook/multimedia/_index.adoc index 8fe084d028..8ecbd472fc 100644 --- a/documentation/content/ja/books/handbook/multimedia/_index.adoc +++ b/documentation/content/ja/books/handbook/multimedia/_index.adoc @@ -7,7 +7,8 @@ description: FreeBSD は数多くの種類のサウンドカードに対応し tags: ["multimedia", "sound card", "MP3", "MythTV", "scanner", "SANE"] showBookMenu: true weight: 10 -path: "/books/handbook/" +params: + path: "/books/handbook/multimedia/" --- [[multimedia]] diff --git a/documentation/content/ja/books/handbook/parti.adoc b/documentation/content/ja/books/handbook/parti.adoc index 4be154220c..701cc6e213 100644 --- a/documentation/content/ja/books/handbook/parti.adoc +++ b/documentation/content/ja/books/handbook/parti.adoc @@ -4,7 +4,8 @@ prev: books/handbook/preface next: books/handbook/introduction showBookMenu: true weight: 2 -path: "/books/handbook/" +params: + path: "/books/handbook/parti/" --- [[getting-started]] diff --git a/documentation/content/ja/books/handbook/partii.adoc b/documentation/content/ja/books/handbook/partii.adoc index 4369b371b8..48d739483a 100644 --- a/documentation/content/ja/books/handbook/partii.adoc +++ b/documentation/content/ja/books/handbook/partii.adoc @@ -4,7 +4,8 @@ prev: books/handbook/x11 next: books/handbook/desktop showBookMenu: true weight: 8 -path: "/books/handbook/" +params: + path: "/books/handbook/partii/" --- [[common-tasks]] diff --git a/documentation/content/ja/books/handbook/partiii.adoc b/documentation/content/ja/books/handbook/partiii.adoc index c5b9f05163..85ba0e5740 100644 --- a/documentation/content/ja/books/handbook/partiii.adoc +++ b/documentation/content/ja/books/handbook/partiii.adoc @@ -4,7 +4,8 @@ prev: books/handbook/linuxemu next: books/handbook/config showBookMenu: true weight: 14 -path: "/books/handbook/" +params: + path: "/books/handbook/partiii/" --- [[system-administration]] diff --git a/documentation/content/ja/books/handbook/partiv.adoc b/documentation/content/ja/books/handbook/partiv.adoc index b9a5161a9f..670b0a47a2 100644 --- a/documentation/content/ja/books/handbook/partiv.adoc +++ b/documentation/content/ja/books/handbook/partiv.adoc @@ -3,8 +3,9 @@ title: パートIV. ネットワーク通信 prev: books/handbook/cutting-edge next: books/handbook/serialcomms showBookMenu: true -weight: 22 -path: "/books/handbook/" +weight: 21 +params: + path: "/books/handbook/partiv/" --- [[network-communication]] diff --git a/documentation/content/ja/books/handbook/partv.adoc b/documentation/content/ja/books/handbook/partv.adoc index 359580d680..60a7f11d5d 100644 --- a/documentation/content/ja/books/handbook/partv.adoc +++ b/documentation/content/ja/books/handbook/partv.adoc @@ -3,8 +3,9 @@ title: パートV. 付録 prev: books/handbook/advanced-networking next: books/handbook/mirrors showBookMenu: true -weight: 27 -path: "/books/handbook/" +weight: 26 +params: + path: "/books/handbook/partv/" --- [[appendices]] diff --git a/documentation/content/ja/books/handbook/pgpkeys/_index.adoc b/documentation/content/ja/books/handbook/pgpkeys/_index.adoc index 5ed591f80b..ddd079705d 100644 --- a/documentation/content/ja/books/handbook/pgpkeys/_index.adoc +++ b/documentation/content/ja/books/handbook/pgpkeys/_index.adoc @@ -4,8 +4,9 @@ part: パートV. 付録 prev: books/handbook/eresources next: books/handbook/freebsd-glossary showBookMenu: true -weight: 31 -path: "/books/handbook/" +weight: 30 +params: + path: "/books/handbook/pgpkeys/" --- [appendix] @@ -59,9 +60,6 @@ endif::[] === {security-officer-name} `<{security-officer-email}>` include::{pgpkeys-path}static/pgpkeys/security-officer.key[] -=== {secteam-secretary-name} `<{secteam-secretary-email}>` -include::{pgpkeys-path}static/pgpkeys/secteam-secretary.key[] - === {core-secretary-name} `<{core-secretary-email}>` include::{pgpkeys-path}static/pgpkeys/core-secretary.key[] diff --git a/documentation/content/ja/books/handbook/ports/_index.adoc b/documentation/content/ja/books/handbook/ports/_index.adoc index ff8d4df6b1..06fd70eadf 100644 --- a/documentation/content/ja/books/handbook/ports/_index.adoc +++ b/documentation/content/ja/books/handbook/ports/_index.adoc @@ -7,7 +7,8 @@ description: "FreeBSD は、サードパーティ製のソフトウェアの導 tags: ["ports", "collection", "pkg", "poudriere", "管理"] showBookMenu: true weight: 6 -path: "/books/handbook/" +params: + path: "/books/handbook/ports/" --- [[ports]] @@ -188,7 +189,7 @@ Info: Lists information about open files (similar to fstat(1)) Maint: ler@lerctr.org Index: sysutils B-deps: -R-deps: +R-deps: .... + [TIP] @@ -611,50 +612,6 @@ port の構築の展開部で、ダウンロードされたソースは自動的 port を用いてアプリケーションをコンパイルできるようにするには、 まず最初に Ports Collection をインストールする必要があります。 FreeBSD のインストール時に Ports Collection をインストールしていない場合には、 以下の方法のどれかを用いてインストールしてください。 -[[ports-using-portsnap-method]] -[.procedure] -==== -*Procedure: Portsnap を利用する方法* - -FreeBSD のベースシステムには、Portsnap が含まれています。 これは Ports Collection を取得するための速くて使いやすく、 多くのユーザ (FreeBSD-CURRENT を使っているユーザは除きます) に推奨されるツールです。 このユーティリティは、FreeBSD のサイトに接続し、セキュリティキーを検証し、 Ports Collection の最新版をダウンロードします。 セキュリティキーは、 ダウンロードしたすべてのファイルの検証に用いられます。 - -+Note that Portsnap updates are generated from a snapshot of the main -+branch of the Ports Collection and cannot be configured to use a -+different branch (for example, `quarterly`). -+If it is necessary to use a different branch of the Ports Collection -+(for instance as referenced earlier in conjunction with binary -+packages), then the <<ports-using-git-method,Git method>> must be used. -+ -. 圧縮された Ports Collection のスナップショットを [.filename]#/var/db/portsnap# にダウンロードするには以下を実行してください。 -+ -[source,shell] -.... -# portsnap fetch -.... -+ -. 初めて Portsnap を使う時は、 スナップショットをまず [.filename]#/usr/ports# に展開してください。 -+ -[source,shell] -.... -# portsnap extract -.... -+ -. 上で示した Portsnap を初めて利用する際に行うコマンドを実行した後は、 以下のコマンドで [.filename]#/usr/ports# をアップデートしてください。 -+ -[source,shell] -.... -# portsnap fetch -# portsnap update -.... -+ -`fetch` を使う場合には、以下のよう `extract` または `update` を連続して行うことができます。 -+ -[source,shell] -.... -# portsnap fetch update -.... -==== - [[ports-using-git-method]] [.procedure] ==== @@ -855,7 +812,7 @@ port が削除されるときに表示されるメッセージを読むことを ports のインストール後、時間が経過すると、Ports Collection で新しいバージョンのソフトウェアを利用できるようになります。 この章では、 どのようにしてアップグレードする必要のあるソフトウェアを判断するか、 そしてアップグレードの方法について説明します。 -インストールされている ports の新しいバージョンを利用できるかどうかを知るには、まず、 最新の ports ツリーがインストールされていることを確認してください。 これには、<<ports-using-portsnap-method,「Portsnap を利用する方法」>> もしくは <<ports-using-git-method,「Git を用いる方法」>> で書かれているアップデートのコマンドを使ってください。 +インストールされている ports の新しいバージョンを利用できるかどうかを知るには、まず、 最新の ports ツリーがインストールされていることを確認してください。 これには、<<ports-using-git-method,「Git を用いる方法」>> で書かれているアップデートのコマンドを使ってください。 FreeBSD 10 以降のシステム、または、pkg に変換されたシステムでは、 以下のコマンドを実行すると、現在利用可能なバージョンよりも古い ports の一覧が表示されます。 [source,shell] @@ -1051,25 +1008,25 @@ poudriere を実行するシステムで、 必ずしも ZFS を使う必要は [source,shell] .... -# poudriere jail -c -j 11amd64 -v 11.4-RELEASE -[00:00:00] Creating 11amd64 fs at /poudriere/jails/11amd64... done -[00:00:00] Using pre-distributed MANIFEST for FreeBSD 11.4-RELEASE amd64 -[00:00:00] Fetching base for FreeBSD 11.4-RELEASE amd64 -/poudriere/jails/11amd64/fromftp/base.txz 125 MB 4110 kBps 31s +# poudriere jail -c -j 13amd64 -v 13.1-RELEASE +[00:00:00] Creating 13amd64 fs at /poudriere/jails/13amd64... done +[00:00:00] Using pre-distributed MANIFEST for FreeBSD 13.1-RELEASE amd64 +[00:00:00] Fetching base for FreeBSD 13.1-RELEASE amd64 +/poudriere/jails/13amd64/fromftp/base.txz 125 MB 4110 kBps 31s [00:00:33] Extracting base... done -[00:00:54] Fetching src for FreeBSD 11.4-RELEASE amd64 -/poudriere/jails/11amd64/fromftp/src.txz 154 MB 4178 kBps 38s +[00:00:54] Fetching src for FreeBSD 13.1-RELEASE amd64 +/poudriere/jails/13amd64/fromftp/src.txz 154 MB 4178 kBps 38s [00:01:33] Extracting src... done -[00:02:31] Fetching lib32 for FreeBSD 11.4-RELEASE amd64 -/poudriere/jails/11amd64/fromftp/lib32.txz 24 MB 3969 kBps 06s +[00:02:31] Fetching lib32 for FreeBSD 13.1-RELEASE amd64 +/poudriere/jails/13amd64/fromftp/lib32.txz 24 MB 3969 kBps 06s [00:02:38] Extracting lib32... done [00:02:42] Cleaning up... done [00:02:42] Recording filesystem state for clean... done [00:02:42] Upgrading using ftp -/etc/resolv.conf -> /poudriere/jails/11amd64/etc/resolv.conf +/etc/resolv.conf -> /poudriere/jails/13amd64/etc/resolv.conf Looking up update.FreeBSD.org mirrors... 3 mirrors found. Fetching public key from update4.freebsd.org... done. -Fetching metadata signature for 11.4-RELEASE from update4.freebsd.org... done. +Fetching metadata signature for 13.1-RELEASE from update4.freebsd.org... done. Fetching metadata index... done. Fetching 2 metadata files... done. Inspecting system... done. @@ -1078,7 +1035,7 @@ Fetching 124 patches.....10....20....30....40....50....60....70....80....90....1 Applying patches... done. Fetching 6 files... done. The following files will be added as part of updating to -11.4-RELEASE-p1: +13.1-RELEASE-p1: /usr/src/contrib/unbound/.github /usr/src/contrib/unbound/.github/FUNDING.yml /usr/src/contrib/unbound/contrib/drop2rpz @@ -1087,14 +1044,14 @@ The following files will be added as part of updating to /usr/src/contrib/unbound/services/rpz.h /usr/src/lib/libc/tests/gen/spawnp_enoexec.sh The following files will be updated as part of updating to -11.4-RELEASE-p1: +13.1-RELEASE-p1: […] Installing updates...Scanning //usr/share/certs/blacklisted for certificates... Scanning //usr/share/certs/trusted for certificates... done. -11.4-RELEASE-p1 +13.1-RELEASE-p1: [00:04:06] Recording filesystem state for clean... done -[00:04:07] Jail 11amd64 11.4-RELEASE-p1 amd64 is ready to be used +[00:04:07] Jail 13amd64 13.1-RELEASE-p1 amd64 is ready to be used .... [source,shell] @@ -1107,10 +1064,10 @@ Scanning //usr/share/certs/trusted for certificates... 一つのコンピュータ上で、 複数の設定、複数の jails、異なる port ツリーから poudriere は port をビルドできます。 これらのコンビネーションのカスタム設定は _セット_ と呼ばれます。 詳細については、package:ports-mgmt/poudriere[] もしくは package:ports-mgmt/poudriere-devel[] をインストール後、 man:poudriere[8] の CUSTOMIZATION の章をご覧下さい。 ここで示される基本設定では、jail, ports そしてセット固有の [.filename]#make.conf# を [.filename]#/usr/local/etc/poudriere.d# に置いてください。 -この例でのファイル名 [.filename]#11amd64-local-workstation-make.conf# は、jail 名、port 名そして、セット名の組み合わせで付けられています。 +この例でのファイル名 [.filename]#13amd64-local-workstation-make.conf# は、jail 名、port 名そして、セット名の組み合わせで付けられています。 システムの [.filename]#make.conf# と、この新しいファイルは、ビルド時に結合され、構築した jail で用いられる [.filename]#make.conf# を作成します。 -ビルドする package を [.filename]#11amd64-local-workstation-pkglist# に記載してください。 +ビルドする package を [.filename]#13amd64-local-workstation-pkglist# に記載してください。 [.programlisting] .... @@ -1124,14 +1081,14 @@ ports-mgmt/pkg [source,shell] .... -# poudriere options -j 11amd64 -p local -z workstation -f 11amd64-local-workstation-pkglist +# poudriere options -j 13amd64 -p local -z workstation -f 13amd64-local-workstation-pkglist .... 最後に packages を構築し、 package リポジトリを生成してください。 [source,shell] .... -# poudriere bulk -j 11amd64 -p local -z workstation -f 11amd64-local-workstation-pkglist +# poudriere bulk -j 13amd64 -p local -z workstation -f 13amd64-local-workstation-pkglist .... このコマンドの実行中に kbd:[Ctrl+t] を押すと、現在のビルド状況が表示されます。 Poudriere は [.filename]#/poudriere/logs/bulk/jailname# にあるファイルも構築します。 このファイルをウェブサーバと共に使うことで、 ビルド情報を表示できます。 @@ -1152,15 +1109,15 @@ FreeBSD: { .... 通常は、HTTP 経由で poudriere リポジトリをクライアントコンピュータに公開すると簡単です。 -package ディレクトリ (たとえば、 [.filename]#/usr/local/poudriere/data/packages/11amd64# ) を公開するようにウェブサーバを設定してください。 -この例で [.filename]#11amd64# は構築名です。 +package ディレクトリ (たとえば、 [.filename]#/usr/local/poudriere/data/packages/13amd64# ) を公開するようにウェブサーバを設定してください。 +この例で [.filename]#13amd64# は構築名です。 -もし、package リポジトリの URL が `http://pkg.example.com/11oamd64` であれば、 リポジトリの設定ファイルである [.filename]#/usr/local/etc/pkg/repos/custom.conf# は、 以下のようになります。 +もし、package リポジトリの URL が `http://pkg.example.com/13amd64` であれば、 リポジトリの設定ファイルである [.filename]#/usr/local/etc/pkg/repos/custom.conf# は、 以下のようになります。 [.programlisting] .... custom: { - url: "http://pkg.example.com/11amd64", + url: "http://pkg.example.com/13amd64", enabled: yes, } .... diff --git a/documentation/content/ja/books/handbook/ppp-and-slip/_index.adoc b/documentation/content/ja/books/handbook/ppp-and-slip/_index.adoc index 1cdbf574cc..077b6ac2da 100644 --- a/documentation/content/ja/books/handbook/ppp-and-slip/_index.adoc +++ b/documentation/content/ja/books/handbook/ppp-and-slip/_index.adoc @@ -1,11 +1,12 @@ --- -title: 第19章 PPP と SLIP +title: 第18章 PPP と SLIP part: パートIV. ネットワーク通信 prev: books/handbook/serialcomms next: books/handbook/mail showBookMenu: true -weight: 24 -path: "/books/handbook/" +weight: 23 +params: + path: "/books/handbook/ppp-and-slip/" --- [[ppp-and-slip]] @@ -16,7 +17,7 @@ path: "/books/handbook/" :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 19 +:sectnumoffset: 18 :partnums: :source-highlighter: rouge :experimental: diff --git a/documentation/content/ja/books/handbook/preface/_index.adoc b/documentation/content/ja/books/handbook/preface/_index.adoc index 00b06a083e..1523f6afb1 100644 --- a/documentation/content/ja/books/handbook/preface/_index.adoc +++ b/documentation/content/ja/books/handbook/preface/_index.adoc @@ -1,12 +1,13 @@ --- title: 前書き -prev: books/handbook/ +prev: books/handbook next: books/handbook/parti description: 最初の部分は FreeBSD を使い始めた人向けで、FreeBSD のインストールの過程を手引きし、UNIX(R) の基礎となっている概念や慣習を丁寧に紹介します。 tags: ["preface", "audience", "organization", "conventions", "acknowledgments"] showBookMenu: true weight: 1 -path: "/books/handbook/" +params: + path: "/books/handbook/preface/" --- [preface] @@ -47,16 +48,19 @@ endif::[] [[preface-audience]] == 想定している読者 -最初の部分は FreeBSD を使い始めた人向けで、FreeBSD のインストールの過程を手引きし、UNIX(R) の基礎となっている概念や慣習を丁寧に紹介します。 この部分に取り組むために必要なのは、探究心と、 紹介された新たな概念を理解する能力だけです。 +最初の部分は FreeBSD を使い始めた人向けで、FreeBSD のインストールの過程を手引きし、UNIX(R) の基礎となっている概念や慣習を丁寧に紹介します。 +この部分に取り組むために必要なのは、探究心と、紹介された新たな概念を理解する能力だけです。 -その次の、ハンドブックのはるかに大きな部分では、FreeBSD システム管理者が興味を抱くあらゆる種類の話題が分かりやすく言及されています。 一部の章は、その章の前に読んでおくべきことが推奨されており、 各章の始めの概要で述べられています。 +その次の、ハンドブックのはるかに大きな部分では、FreeBSD システム管理者が興味を抱くあらゆる種類の話題が分かりやすく言及されています。 +一部の章は、その章の前に読んでおくべきことが推奨されており、各章の始めの概要で述べられています。 さらなる情報源の一覧は、crossref:bibliography[bibliography,参考図書] をご覧ください。 [[preface-changes-from3]] == 第 3 版からの変更 -オンライン版のハンドブックは、FreeBSD ドキュメンテーションプロジェクトの献身的なメンバーによる 10 年以上に渡る作業の頂点に立つものです。 2004 年に出版された 2 巻組の第 3 版からの主な変更は、次のようなものです。 +オンライン版のハンドブックは、FreeBSD ドキュメンテーションプロジェクトの献身的なメンバーによる 10 年以上に渡る作業の頂点に立つものです。 +2004 年に出版された 2 巻組の第 3 版からの主な変更は、次のようなものです。 * Windows(R) アプリケーションを FreeBSD 上で実行するための WINE に関する情報が追加されました。 * 強力なパフォーマンス解析ツール DTrace に関する情報が追加されました。 @@ -68,7 +72,9 @@ endif::[] [[preface-changes-from2]] == 第 2 版 (2004) からの変更 -第 3 版は、FreeBSD ドキュメンテーションプロジェクトの献身的なメンバーによる 2 年以上に渡る作業の頂点に立つものです。 サイズが大きくなったため、印刷版は、2 巻での出版となりました。 この新たな版における主な変更は、次のようなものです。 +第 3 版は、FreeBSD ドキュメンテーションプロジェクトの献身的なメンバーによる 2 年以上に渡る作業の頂点に立つものです。 +サイズが大きくなったため、印刷版は、2 巻での出版となりました。 +この新たな版における主な変更は、次のようなものです。 * crossref:config[config-tuning,設定とチューニング] に、ACPI 電源管理、`cron` システムユーティリティ、 およびカーネルチューニングオプションに関するより多くの情報が追加されました。 * crossref:security[security,セキュリティ] に、 Virtual Private Network (VPN)、 ファイルシステムアクセスコントロールリスト (ACL)、 およびセキュリティ勧告に関する情報が追加されました。 @@ -84,7 +90,8 @@ endif::[] [[preface-changes]] == 第 1 版 (2001) からの変更 -第 2 版は、FreeBSD ドキュメンテーションプロジェクトの献身的なメンバーによる 2 年以上に渡る作業の頂点に立つものでした。 この新たな版における主な変更は、次のようなものでした。 +第 2 版は、FreeBSD ドキュメンテーションプロジェクトの献身的なメンバーによる 2 年以上に渡る作業の頂点に立つものでした。 +この新たな版における主な変更は、次のようなものでした。 * 完備した索引が追加されました。 * ASCII キャラクタによる図はすべて画像に置き換えられました (訳注: 日本語版は作業中です)。 @@ -108,7 +115,15 @@ endif::[] [[preface-overview]] == この文書の構成 -この文書は 5 部構成になっています。 第 1 部_導入_では、 FreeBSD のインストールと基本的な使い方を扱います。 各章は順に読むことを想定していますが、 馴染み深い話題を扱った章は飛ばしてもよいでしょう。 第 2 部_日々の生活_では、 FreeBSD で良く使われる機能について説明します。 この章とそれに続く章は、順不同に読むことができます。 各章の始めにはその章が何を扱っていて、 読者にどんな予備知識が期待されるかを簡潔に述べた概要がおかれています。 第 3 部_システム管理_は、 システム管理に関する話題を扱っています。 第 4 部_ネットワーク通信_では、 ネットワークおよびサーバに関する話題を扱っています。 第 5 部は参考情報からなる_付録_です。 +この文書は 5 部構成になっています。 +第 1 部 _導入_ では、FreeBSD のインストールと基本的な使い方を扱います。 +各章は順に読むことを想定していますが、馴染み深い話題を扱った章は飛ばしてもよいでしょう。 +第 2 部 _日々の生活_ では、FreeBSD で良く使われる機能について説明します。 +この章とそれに続く章は、順不同に読むことができます。 +各章の始めにはその章が何を扱っていて、読者にどんな予備知識が期待されるかを簡潔に述べた概要がおかれています。 +第 3 部 _システム管理_ は、システム管理に関する話題を扱っています。 +第 4 部 _ネットワーク通信_ では、ネットワークおよびサーバに関する話題を扱っています。 +第 5 部は参考情報からなる _付録_ です。 _crossref:introduction[introduction,はじめに]_:: 新規ユーザに FreeBSD を紹介します。ここでは、FreeBSD プロジェクトの歴史、目標と開発モデルについて述べています。 @@ -197,12 +212,14 @@ _イタリック体_ のフォントは、ファイル名、URL, 強調表現、 ``等幅``フォントは、エラーメッセージ、 コマンド、環境変数、ports の名称、ホスト名、ユーザ名、 グループ名、デバイスの名称、変数、 コードの断片を表すのに使われています。 太字:: -kbd:[太字]のフォントは、 アプリケーション、コマンド、キーを表すのに使われています。 +**太字**のフォントは、アプリケーション、コマンド、キーを表すのに使われています。 [[preface-conv-commands]] === ユーザー入力 -文章の他の部分と区別するため、 キーは**太字**で示されています。 同時に押すことを意図したキーの組み合わせは、キーの間に `+` を入れて表されます。たとえば +文章の他の部分と区別するため、キーは**太字**で示されています。 +同時に押すことを意図したキーの組み合わせは、キーの間に `+` を入れて表されます。 +たとえば kbd:[Ctrl+Alt+Del] @@ -217,21 +234,24 @@ kbd:[Ctrl+X], kbd:[Ctrl+S] [[preface-conv-examples]] === 例 -[.filename]#C:\># で始まる例は、MS-DOS(R) コマンドを表しています。特に注釈がなければ、それらのコマンドは最近の Microsoft(R) Windows(R) の "コマンドプロンプト" 環境でも実行できます。 +[.filename]#C:\># で始まる例は、MS-DOS(R) コマンドを表しています。 +特に注釈がなければ、それらのコマンドは最近の Microsoft(R) Windows(R) の "コマンドプロンプト" 環境でも実行できます。 [source,shell] .... C:\> tools\fdimage floppies\kern.flp A: .... -\# で始まる例は、FreeBSD 上でスーパーユーザ権限で実行しなければならないコマンドを示しています。 そのコマンドを入力するには、 `root` としてログインするか、 通常のアカウントでログインして、スーパーユーザ権限を取得するために man:su[1] を使います。 +\# で始まる例は、FreeBSD 上でスーパーユーザ権限で実行しなければならないコマンドを示しています。 +そのコマンドを入力するには、`root` としてログインするか、通常のアカウントでログインして、スーパーユーザ権限を取得するために man:su[1] を使います。 [source,shell] .... # dd if=kern.flp of=/dev/fd0 .... -% で始まる例は、 通常のユーザアカウントで実行するべきコマンドを示しています。 特に断りのない限り、環境変数の設定やその他のシェルコマンドには C シェルの文法が使われています。 +% で始まる例は、通常のユーザアカウントで実行するべきコマンドを示しています。 +特に断りのない限り、環境変数の設定やその他のシェルコマンドには C シェルの文法が使われています。 [source,shell] .... @@ -241,6 +261,14 @@ C:\> tools\fdimage floppies\kern.flp A: [[preface-acknowledgements]] == 謝辞 -あなたが手にしている文書は、 世界中の何百人もの人々の努力の賜物です。 誤字脱字の修正を送ったのか、文章を丸々投稿したのかによらず、 すべての貢献が役に立ちました。 +あなたが手にしている文書は、世界中の何百人もの人々の努力の賜物です。 +誤字脱字の修正を送ったのか、文章を丸々投稿したのかによらず、すべての貢献が役に立ちました。 + +多くの会社が、著者らを雇用してフルタイムでこの文書に取り掛かれるようにしたり、出版費用を出したりして、この文書を作り上げるのを援助してくれました。 +特に、BSDi (その後 http://www.windriver.com[Wind River Systems] に買収されました) は、フルタイムでこの文書の改善作業をするように FreeBSD ドキュメンテーションプロジェクトのメンバーを雇用し、それが 2000 年 3 月の最初の出版 (ISBN 1-57176-241-8) につながりました。 +その後、Wind River Systems は、印刷出力の仕組みを整備し、章を追加するために著者を何名か追加で雇用してくれました。 +この作業は、2001 年 11 月の第 2 版の出版 (ISBN 1-57176-303-1) に結実しました。 +2003-2004 年には、ハンドブック第 3 版の出版準備のために http://www.freebsdmall.com[FreeBSD Mall, Inc] が貢献者を雇用してくれました。 +第 3 版は 2 巻組となりました。 +各巻は、The FreeBSD Handbook 3rd Edition Volume 1: User Guide (ISBN 1-57176-327-9) および The FreeBSD Handbook 3rd Edition Volume 2: Administrators Guide (ISBN 1-57176-328-7) として出版されています。 -多くの会社が、 著者らを雇用してフルタイムでこの文書に取り掛かれるようにしたり、 出版費用を出したりして、この文書を作り上げるのを援助してくれました。 特に、BSDi (その後 http://www.windriver.com[Wind River Systems] に買収されました) は、フルタイムでこの文書の改善作業をするように FreeBSD ドキュメンテーションプロジェクトのメンバーを雇用し、それが 2000 年 3 月の最初の出版 (ISBN 1-57176-241-8) につながりました。 その後、Wind River Systems は、印刷出力の仕組みを整備し、 章を追加するために著者を何名か追加で雇用してくれました。この作業は、 2001 年 11 月の第 2 版の出版 (ISBN 1-57176-303-1) に結実しました。 2003-2004 年には、ハンドブック第 3 版の出版準備のために http://www.freebsdmall.com[FreeBSD Mall, Inc] が貢献者を雇用してくれました。 diff --git a/documentation/content/ja/books/handbook/printing/_index.adoc b/documentation/content/ja/books/handbook/printing/_index.adoc index 471d3f5135..7edc0dee67 100644 --- a/documentation/content/ja/books/handbook/printing/_index.adoc +++ b/documentation/content/ja/books/handbook/printing/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/kernelconfig next: books/handbook/linuxemu showBookMenu: true weight: 12 -path: "/books/handbook/" +params: + path: "/books/handbook/printing/" --- [[printing]] diff --git a/documentation/content/ja/books/handbook/security/_index.adoc b/documentation/content/ja/books/handbook/security/_index.adoc index 56f1ad8df2..445a339e83 100644 --- a/documentation/content/ja/books/handbook/security/_index.adoc +++ b/documentation/content/ja/books/handbook/security/_index.adoc @@ -1,11 +1,12 @@ --- -title: 第14章 セキュリティ +title: 第13章 セキュリティ part: パートIII. システム管理 -prev: books/handbook/users +prev: books/handbook/boot next: books/handbook/disks showBookMenu: true -weight: 18 -path: "/books/handbook/" +weight: 17 +params: + path: "/books/handbook/security/" --- [[security]] @@ -16,7 +17,7 @@ path: "/books/handbook/" :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 14 +:sectnumoffset: 13 :partnums: :source-highlighter: rouge :experimental: @@ -1648,78 +1649,185 @@ portaudit は強力で、 portmaster port と共に使うときわめて有用 [[security-advisories]] == FreeBSD セキュリティ勧告 -多くの高品質なオペレーティングシステムと同様、 FreeBSD は "セキュリティ勧告" を発行しています。 これらの勧告は、通常セキュリティに関連したのメーリングリストに投稿され、 サポートされているリリースに対してパッチが作成された後、 Errata に記載されます。 この章では、セキュリティ勧告とは何か、どのように理解すべきか、 システムにパッチを当てるにはどのように対応すればよいかについて説明します。 +多くの高品質なオペレーティングシステムのプロジェクト同様、 FreeBSD プロジェクトはセキュリティチームを持っています。 +このチームは責任をもって、各 FreeBSD リリースに対する保守終了 (End-of-Life (EoL)) 日を決めたり、サポートされているリリースに対して、EoL までセキュリティアップデートを提供しています。 +FreeBSD セキュリティチームおよびサポートされているリリースについての情報は、link:https://www.FreeBSD.org/ja/security[FreeBSD セキュリティページ] で提供されています。 + +セキュリティチームの仕事の 1 つは FreeBSD オペレーティングシステムのセキュリティ脆弱性に対応することです。 +脆弱性が確認されると、セキュリティチームは脆弱性を修正するために必要となる手続きを検証し、修正を含めるようにソースコードをアップデートします。 +その後、詳細を "セキュリティ勧告" として発行しています。 +セキュリティ勧告は、 link:https://www.FreeBSD.org/ja/security/advisories/[FreeBSD ウェブサイト] で公開され、 {freebsd-security-notifications}, {freebsd-security}, および {freebsd-announce} メーリングリストに投稿されます。 + +この章では、セキュリティ勧告とはどのようなものか説明します。 === セキュリティ勧告はどのようなものか? -FreeBSD セキュリティ勧告では、 以下のようなフォーマットが用いられています。 +以下は FreeBSD セキュリティ勧告の例です。 [.programlisting] .... ============================================================================= -FreeBSD-SA-XX:XX.UTIL Security Advisory +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +============================================================================= +FreeBSD-SA-14:04.bind Security Advisory The FreeBSD Project -Topic: denial of service due to some problem <.> - -Category: core <.> -Module: sys <.> -Announced: 2003-09-23 <.> -Credits: Person <.> -Affects: All releases of FreeBSD <.> - FreeBSD 4-STABLE prior to the correction date -Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE) - 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6) - 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15) - 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8) - 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18) - 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21) - 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) - 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) - 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39) <.> -CVE Name: CVE-XXXX-XXXX <.> +Topic: BIND remote denial of service vulnerability + +Category: contrib +Module: bind +Announced: 2014-01-14 +Credits: ISC +Affects: FreeBSD 8.x and FreeBSD 9.x +Corrected: 2014-01-14 19:38:37 UTC (stable/9, 9.2-STABLE) + 2014-01-14 19:42:28 UTC (releng/9.2, 9.2-RELEASE-p3) + 2014-01-14 19:42:28 UTC (releng/9.1, 9.1-RELEASE-p10) + 2014-01-14 19:38:37 UTC (stable/8, 8.4-STABLE) + 2014-01-14 19:42:28 UTC (releng/8.4, 8.4-RELEASE-p7) + 2014-01-14 19:42:28 UTC (releng/8.3, 8.3-RELEASE-p14) +CVE Name: CVE-2014-0591 For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the -following sections, please visit -http://www.FreeBSD.org/security/. +following sections, please visit <URL:http://security.FreeBSD.org/>. + +I. Background + +BIND 9 is an implementation of the Domain Name System (DNS) protocols. +The named(8) daemon is an Internet Domain Name Server. + +II. Problem Description + +Because of a defect in handling queries for NSEC3-signed zones, BIND can +crash with an "INSIST" failure in name.c when processing queries possessing +certain properties. This issue only affects authoritative nameservers with +at least one NSEC3-signed zone. Recursive-only servers are not at risk. + +III. Impact + +An attacker who can send a specially crafted query could cause named(8) +to crash, resulting in a denial of service. + +IV. Workaround + +No workaround is available, but systems not running authoritative DNS service +with at least one NSEC3-signed zone using named(8) are not vulnerable. + +V. Solution + +Perform one of the following: + +1) Upgrade your vulnerable system to a supported FreeBSD stable or +release / security branch (releng) dated after the correction date. + +2) To update your vulnerable system via a source code patch: + +The following patches have been verified to apply to the applicable +FreeBSD release branches. + +a) Download the relevant patch from the location below, and verify the +detached PGP signature using your PGP utility. + +[FreeBSD 8.3, 8.4, 9.1, 9.2-RELEASE and 8.4-STABLE] +# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-release.patch +# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-release.patch.asc +# gpg --verify bind-release.patch.asc + +[FreeBSD 9.2-STABLE] +# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-stable-9.patch +# fetch http://security.FreeBSD.org/patches/SA-14:04/bind-stable-9.patch.asc +# gpg --verify bind-stable-9.patch.asc -I. Background <.> +b) Execute the following commands as root: +# cd /usr/src +# patch < /path/to/patch -II. Problem Description <.> +Recompile the operating system using buildworld and installworld as +described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>. +Restart the applicable daemons, or reboot the system. -III. Impact <.> +3) To update your vulnerable system via a binary patch: +Systems running a RELEASE version of FreeBSD on the i386 or amd64 +platforms can be updated via the man:freebsd-update[8] utility: -IV. Workaround <.> +# freebsd-update fetch +# freebsd-update install +VI. Correction details -V. Solution <.> +The following list contains the correction revision numbers for each +affected branch. +Branch/path Revision +- ------------------------------------------------------------------------- +stable/8/ r260646 +releng/8.3/ r260647 +releng/8.4/ r260647 +stable/9/ r260646 +releng/9.1/ r260647 +releng/9.2/ r260647 +- ------------------------------------------------------------------------- -VI. Correction details <.> +To see which files were modified by a particular revision, run the +following command, replacing NNNNNN with the revision number, on a +machine with Subversion installed: +# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base -VII. References <.> +Or visit the following URL, replacing NNNNNN with the revision number: + +<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN> + +VII. References + +<URL:https://kb.isc.org/article/AA-01078> + +<URL:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0591> + +The latest revision of this advisory is available at +<URL:http://security.FreeBSD.org/advisories/FreeBSD-SA-14:04.bind.asc> +-----BEGIN PGP SIGNATURE----- + +iQIcBAEBCgAGBQJS1ZTYAAoJEO1n7NZdz2rnOvQP/2/68/s9Cu35PmqNtSZVVxVG +ZSQP5EGWx/lramNf9566iKxOrLRMq/h3XWcC4goVd+gZFrvITJSVOWSa7ntDQ7TO +XcinfRZ/iyiJbs/Rg2wLHc/t5oVSyeouyccqODYFbOwOlk35JjOTMUG1YcX+Zasg +ax8RV+7Zt1QSBkMlOz/myBLXUjlTZ3Xg2FXVsfFQW5/g2CjuHpRSFx1bVNX6ysoG +9DT58EQcYxIS8WfkHRbbXKh9I1nSfZ7/Hky/kTafRdRMrjAgbqFgHkYTYsBZeav5 +fYWKGQRJulYfeZQ90yMTvlpF42DjCC3uJYamJnwDIu8OhS1WRBI8fQfr9DRzmRua +OK3BK9hUiScDZOJB6OqeVzUTfe7MAA4/UwrDtTYQ+PqAenv1PK8DZqwXyxA9ThHb +zKO3OwuKOVHJnKvpOcr+eNwo7jbnHlis0oBksj/mrq2P9m2ueF9gzCiq5Ri5Syag +Wssb1HUoMGwqU0roS8+pRpNC8YgsWpsttvUWSZ8u6Vj/FLeHpiV3mYXPVMaKRhVm +067BA2uj4Th1JKtGleox+Em0R7OFbCc/9aWC67wiqI6KRyit9pYiF3npph+7D5Eq +7zPsUdDd+qc+UTiLp3liCRp5w6484wWdhZO6wRtmUgxGjNkxFoNnX8CitzF8AaqO +UWWemqWuz3lAZuORQ9KX +=OQzQ +-----END PGP SIGNATURE----- .... -<.> `Topic` フィールドでは、 問題について明記されています。 セキュリティ勧告の導入部であり、 脆弱性に影響されるユーティリティを示します。 -<.> `Category` フィールドでは、 脆弱性がシステムのどの部分に影響するかを示します。 `core`, `contrib` または `ports` のどれかが示されます。 `core` カテゴリは、 FreeBSD オペレーティングシステムの `core` コンポーネントに影響する脆弱性であることを意味します。 `contrib` カテゴリは、 Sendmail のように、FreeBSD の外で開発され、FreeBSD プロジェクトに取り込まれたソフトウェアに影響する脆弱性であることを意味します。 `ports` カテゴリは、Ports Collection からインストールされるソフトウェアに影響する脆弱性であることを示しています。 -<.> `Module` フィールドは、 影響するコンポーネントについて言及します。 この例では、`sys` モジュールに影響することがわかります。 そのため、この脆弱性は、 カーネルの中で使われるコンポーネントに影響します。 -<.> `Announced` フィールドは、 セキュリティ勧告が発行された日、 またはアナウンスされた日が記載されています。 セキュリティチームによりこの問題が存在することが確認され、 パッチが FreeBSD ソースコードリポジトリにコミットされたことを意味します。 -<.> `Credits` フィールドは、 脆弱性を通知し、報告した個人または組織を示します。 -<.> `Affects` フィールドは、この脆弱性がどの FreeBSD リリースに影響するかを説明します。 カーネルでは、影響するファイルに対して man:ident[1] を実行すると、 その出力からリビジョンを簡単に確認できます。 ports の場合には、 [.filename]#/var/db/pkg# の port の名前の後に、バージョン番号が示されています。 もし、システムが FreeBSD Subversion リポジトリと同期していなかったり、 再構築が毎日行われているような状況でなければ、 おそらく、そのシステムには影響しているでしょう。 -<.> `Corrected` フィールドは、 脆弱性が修正された日、時間、 タイムゾーン、およびリリースが示されます。 -<.> http://cve.mitre.org[Common Vulnerabilities and Exposures] データベースにおいて、 脆弱性を探すために使用できる識別情報を示します。 -<.> `Background` フィールドは、 影響しているユーティリティに関する情報を示します。 大体の場合は、なぜユーティリティが FreeBSD に存在するか、 何のために使われているか、 どのように用いられるようになってきたか、 といった情報が示されます。 -<.> `Problem Description` フィールドは、 より深くセキュリティホールについて説明します。 問題のあるコードの情報や、 このユーティリティが悪意のある使い方により、 どのようにセキュリティホールを開けうるかといったことが示されます。 -<.> `Impact` フィールドは、 この問題がシステムに対して、 どのような形式の影響を与えるかについて示します。 たとえば、DoS 攻撃によるものか、 ユーザに対して意図しない特権を持たせてしまうものか、 または、攻撃者にスーパユーザのアクセスを与えるようなものか、 といったことが示されます。 -<.> `Workaround` フィールドは、 時間による制限や、ネットワークの可用性または他の理由により、 システムをアップグレードできないシステム管理者に対して、 回避方法を提供します。 セキュリティを甘く見るべきではなく、 影響するシステムにはパッチを当てるか、 セキュリティホールの回避方法を実行すべきです。 -<.> `Solution` フィールドは、 影響のあるシステムにパッチを当てる手順を提供します。 ここではステップごとにシステムにパッチを当て、 安全に動作するように、 試験され検証された方法が記載されます。 -<.> `Correction Details` フィールドは、 Subversion ブランチまたはリリース名のピリオドをアンダースコアに置き換えたものを示します。 ここでは、 各ブランチにおいて影響するファイルのリビジョン番号も示します。 -<.> `References` フィールドは、 通常、ウェブページの URL, books, メーリングリストおよびニュースグループといった、 ほかの情報へのソースを提供します。 +すべてのセキュリティ勧告は以下のフォーマットに基づいています。 + +* 各セキュリティ勧告には、セキュリティオフィサの PGP 鍵により署名されています。セキュリティオフィサの公開鍵は、crossref:pgpkeys[pgpkeys,OpenPGP 鍵] で検証できます。 +* FreeBSD のセキュリティ勧告の名前は常に `FreeBSD-SA-` で始まり、次に年を表す 2 桁の数字 (`14:`)、年毎の勧告の番号 (`04.`) 、そして影響するアプリケーションまたはサブシステムの名前 (`bind`) が続きます。この例は、2014 年の 4 番目の勧告で BIND に影響する脆弱性に対する勧告を意味しています。 +* `Topic` フィールドでは、脆弱性について明記されています。 +* `Category` では、脆弱性がシステムのどの部分に影響するかを示します。 `core`, `contrib` または `ports` のどれかが示されます。 `core` カテゴリは、 FreeBSD オペレーティングシステムの `core` コンポーネントに影響する脆弱性であることを意味します。 `contrib` カテゴリは、BIND のように FreeBSD に取り込まれているソフトウェアに影響する脆弱性であることを意味します。 `ports` カテゴリは、Ports Collection からインストールされるソフトウェアに影響する脆弱性であることを示しています。 +* `Module` フィールドは、 影響するコンポーネントについて言及します。 この例では `bind` モジュールに影響することがわかります。 そのため、この脆弱性は、オペレーティングシステムとともにインストールされたアプリケーションに影響します。 +* `Announced` フィールドには、セキュリティ勧告が発行された日が記載されています。 セキュリティチームによりこの問題が存在することが確認され、パッチが FreeBSD ソースコードリポジトリにコミットされたことを意味します。 +* `Credits` フィールドは、脆弱性を発見し、報告した個人または組織を示します。 +* `Affects` フィールドは、この脆弱性がどの FreeBSD リリースに影響するかを示しています。 +* `Corrected` フィールドには、脆弱性が修正された日、時間、タイムゾーン、およびリリースが示されます。この括弧の中では、修正がマージされた各ブランチ、およびそのブランチで対応するリリースのバージョン番号が示されています。リリースの識別子には、バージョン番号、可能な場合はパッチレベルが含まれています。パッチレベルは `p` に番号が続いたものです。この番号はパッチのシーケンス番号で、この番号を確認することで、ユーザはどのパッチまでがシステムに適用されているかを追跡できます。 +* `CVE Name` フィールドは、該当する脆弱性が http://cve.mitre.org[cve.mitre.org] セキュリティ脆弱性データベースに存在する場合に、脆弱性の番号一覧を示します。 +* `Background` フィールドは、影響しているモジュールに関する情報を示します。 +* `Problem Description` フィールドは、脆弱性について説明します。 問題のあるコードの情報や、このユーティリティがどのように悪意のある使われ方をされうるかといったことが示されます。 +* `Impact` フィールドは、 この問題がシステムに対して、 どのような形式の影響を与えるかについて示します。 +* `Workaround` フィールドは、何らかの理由により、すぐにシステムにパッチを当てることのできないシステム管理者に対して、回避方法が存在する場合にその方法を提供します。 +* `Solution` フィールドは、影響のあるシステムにパッチを当てる手順を提供します。ここではステップごとにシステムにパッチを当て、安全に動作するように、試験され検証された方法が記載されます。 +* `Correction Details` フィールドは、影響する各 Subversion ブランチに対する修正されたコードが取り込まれたリビジョン番号をを示します。 +* `References` フィールドは、脆弱性に関連する他の情報へのソースを提供します。 [[security-accounting]] == プロセスアカウンティング @@ -1754,11 +1862,115 @@ VII. References <.> [[security-resourcelimits]] == リソースの制限 -長年にわたり FreeBSD は、 リソースを制限するためのデータベースとしてフラットファイル形式の [.filename]#/etc/login.conf# により管理していました。 この方法は、現在でも使われていますが、 リソースを管理する方法としては最適な方法でないことが、 以前から議論されています。 フラットファイル形式では、 クラスとして知られるグループラベルにユーザを分類する必要があります。 この場合、フラットファイルだけではなく、 パスワードデータベースに対しても変更が必要となります。 潜在的に、より多くの制限を加えられたユーザ対してはラベルの追加や、 `cap_mkdb` を使ったリソースデータベースの再構築、 [.filename]#/etc/master.passwd# への変更が必要となります。 さらに、パスワードデータベースは、 `pwd_mkdb` を使って再構築する必要があります。 この複数回に渡るプロセスは、 多くのユーザについて設定する必要がある場合には、 大変な時間の浪費につながる可能性があります。 +FreeBSD は、個々のユーザが利用できるシステムのリソース容量を制限する方法をいくつも用意しています。 +ディスククォータはユーザが使用できるディスク容量を制限します。 +クォータについては crossref:disks[quotas,「ディスククォータ」] で説明されています。 + +その他のリソースの制限とは、ユーザが消費できる CPU、メモリなどのリソースを制限する手段のことです。 +フラットファイルまたはコマンドによりリソースの制限に関わるデータベースを管理できます。 +伝統的な方法では、ログインクラスを [.filename]#/etc/login.conf# を編集することにより定義します。 +この方法は、現在でも使われていますが、変更を行うには、このファイルの編集、リソースデータベースの再構築、 [.filename]#/etc/master.passwd# への必要な変更、さらに、パスワードデータベースの再構築といった、複数回に渡るプロセスが必要です。 +この複数回に渡るプロセスは、 多くのユーザについて設定する必要がある場合には、 大変な時間の浪費につながる可能性があります。 + +`rctl` を用いると、よりきめ細かにリソースの制限を管理する方法を提供できます。 +このコマンドは、ユーザだけではなく、プロセスおよび jails に対してもリソースを制限できます。 + +この節では、リソースを管理する方法について伝統的な方法と高度な方法の両方について説明します。 -FreeBSD の新しいコマンドである man:rctl[8] は、 ユーザに対して、 よりきめ細かにリソースの制限を管理する方法を提供します。 このコマンドは、ユーザだけではなく、プロセス、jails およびオリジナルのログインクラスに対してもリソースの制限を行うことができます。 これらの高度な機能は、管理者およびユーザに対し、 リソースをコマンドラインで管理したり、 設定ファイルを用いることで、システムの初期化時に、 ルールを設定する方法を提供します。 +[[users-limiting]] +=== ログインクラスの設定 + +伝統的な方法では、ログインクラスおよびログインクラスに適用するリソースの制限は [.filename]#/etc/login.conf# で定義します。 +各ユーザアカウントにはログインクラスが割り当てられています (デフォルトでは `default` です)。 +それぞれのログインクラスには関連するログインケーパビリティの集合が割り当てられています。 +ログインケーパビリティとは、 `名称=値` の組のことで、_名称_ は周知の識別子、_値_ は、_名称_ に応じて処理される任意の文字列です。 + +[NOTE] +==== +[.filename]#/etc/login.conf# を編集する時には [.filename]#/etc/login.conf.db# を次のコマンドを実行してアップデートする必要があります。 + +[source,shell] +.... +# cap_mkdb /etc/login.conf +.... + +==== -この機能を有効にするには、以下の行を [.filename]#GENERIC# またはカスタムカーネルコンフィグレーションファイルに追加し、 再構築してください。 +リソースの制限は、 2 つの点で標準的なログインケーパビリティと異なっています。 +第一に、どの制限についても、 _ソフト_ リミットと _ハード _リミットがあります。 +ソフトリミットは、ユーザやアプリケーションが調整できますが、 ハードリミットを超えることはできません。 +ユーザはハードリミットを下げることはできますが、 上げることはスーパユーザのみができます。 +第二に、ほとんどのリソースの制限は特定のユーザに対してプロセス毎に適用されるものです。 + +<<resource-limits>> が最もよく使われるリソースの制限です。 +利用可能なすべてのリソースの制限およびのログインケーパビリティの詳細については、 man:login.conf[5] に書かれています。 + +[[resource-limits]] +.ログインクラスのリソースの制限 +[cols="20%,80%", frame="none", options="header"] +|=== +| リソースの制限 +| 説明 + +|coredumpsize +|プログラムが生成する core ファイルのサイズにかかる制限は、 `filesize` やディスククォータなどの、 ほかのディスク使用に関する制限に従属します。 +この制限は、ディスク領域の消費を制御するあまり厳しくない手段としてよく使われています。 +ユーザは core ファイルを自分で生成するわけではなく、削除しないことも多いので、 これを設定すれば大きなプログラムが異常終了してもディスクの空きがなくならずに済みます。 + +|cputime +|そのユーザのプロセスが消費できる CPU 時間の上限です。 +これを超えたプロセスは、カーネルにより終了されます。 +これは、消費される CPU _時間_ についての制限であって、`top` や `ps` のフィールドで表示される CPU の割合に関するものではありません。 + +|filesize +|ユーザが所有できるファイルの大きさの上限です。 +ディスククォータ (crossref:disks[quotas,「ディスククォータ」) と違い、この制限はユーザのファイルをすべてまとめた集合にではなく、個々のファイルにかかります。 + +|maxproc +|ユーザが実行できるフォアグラウンドとバックグラウンドプロセス数の上限です。 +この上限は、`kern.maxproc` で指定されたシステムの制限を超えることはできません。 +この値をあまり小さな値に設定すると、大きなプログラムをコンパイルする場合のように、複数のプロセスが実行されるようなタスクにおいて、ユーザの生産性が悪化する可能性があります。 + +|memorylocked +|1 つのプロセスが man:mlock[2] によりメインメモリにロックされることを要求できるメモリの最大容量です。 +man:amd[8] のようなシステムで重要なプログラムは、 メインメモリへロックして、システムがスワップする際に、 ディスクのスラッシングを引き起こさないようにします。 + +|memoryuse +|どの時点かを問わず、あるプロセスが消費できる最大のメモリ容量です。 +これは、メインメモリとスワップの使用量を合わせたものです。 +メモリ消費を抑えるための包括的な制限ではありませんが、手始めにはよいでしょう。 + +|openfiles +|あるプロセスが開いておける最大のファイル数です。 +FreeBSD では、ファイルは、ソケットや IPC チャンネルを表わすのにも使われているので、あまり低い値に設定しないよう注意してください。 +これに対応するシステム全体の制限は man:sysctl[8] `kern.maxfiles` で定義されます。 + +|sbsize +|あるユーザが消費できるネットワークメモリの上限の量です。 +これは、ネットワーク通信を制限するのに使えます。 + +|stacksize +|プロセスのスタックサイズの上限です。 +あるプログラムが使用しうるメモリの量を制限するには、これだけでは十分ではないので、他の制限と組み合わせて使わなければなりません。 +|=== + +リソースの制限を設定するにあたり、ほかにもいくつか覚えておかなければならないことがあります。 + +* システム起動時に [.filename]#/etc/rc# から起動されたプロセスは、`daemon` ログインクラスに割り当てられます。 +* システムに付属している [.filename]#/etc/login.conf# はほとんどの制限について妥当な値になっていますが、すべてのシステムにおいてふさわしいというわけではありません。 +制限をあまり緩くするとシステムを悪用しやすくしてしまいますし、厳しくしすぎると生産性を悪化させてしまいます。 +* Xorg は多くのリソースを使うだけでなく、より多くのプログラムを並行して使うことをユーザに促します。 +* 多くの制限は個々のプロセスにかかるもので、一人のユーザにまとめてかかるものではありません。 +例えば、`openfiles` を 50 に設定することは、ユーザが動かすそれぞれのプロセスが最大 50 個のファイルを開けるということです。 +あるユーザが開けるファイルの総数は、 `openfiles` の値に `maxproc` をかけたものになります。 +同じことがメモリ消費量にもあてはまります。 + +リソースの制限と、ログインクラス、 ログインケーパビリティ一般についての詳しい情報は、 man:cap.mkdb[1], man:getrlimit[2] および man:login.conf[5] をご覧ください。 + +=== リソースの制限を有効にして設定する + +`kern.racct.enable` をゼロ以外の値に設定してください。 +カスタムカーネルには以下のような特別な設定が必要となります。 [.programlisting] .... @@ -1766,18 +1978,24 @@ options RACCT options RCTL .... -その後、システムの再起動が必要になります。 この過程の手順については、crossref:kernelconfig[kernelconfig,FreeBSD カーネルのコンフィグレーション] をご覧ください。 これらの準備が完了すると、`rctl` を用いてシステムにルールを設定できるようになります。 +システムを再起動して新しいカーネルで立ち上げると、`rctl` を用いてシステムにルールを設定できるようになります。 -ルールの構文は簡単で、 _subject_, _subject-id_, _resource_ および _action_ を使って管理されます。 以下のルールの例を参照してください。 +ルールの構文は、 subject, subject-id, resource および action を使って管理されます。 +以下のルールの例を参照してください。 [.programlisting] .... user:trhodes:maxproc:deny=10/user .... -これは基本的なルールです。 ここで、subject は `user`、 subject-id は `trhodes` です。 maxproc はもちろんプロセスの最大数であり、resource です。 ここで action は、`deny` と設定されており、 新しいプロセスの生成がブロックされます。 この例では、ユーザ `trhodes` のプロセスは `10` 個に制限され、それ以上のプロセスは作成できません。 コンソールにログを出力したり、 man:devd[8] に対し通知したり、プロセスに sigterm を送ったりといった、 他の action も利用できます。 +この例では、subject は `user`、subject-id は `trhodes`、resource の `maxproc` はプロセスの最大数、そして action は `deny` と設定されており、 新しいプロセスの生成がブロックされます。 +これは、ユーザ `trhodes` のプロセスは `10` 個に制限され、それ以上のプロセスは作成できないことを意味しています。 +他には、コンソールにログを出力したり、 man:devd[8] に対し通知したり、プロセスに sigterm を送ったりといった action も利用できます。 -ルールを追加する際には、注意すべき点がいくつかあります。 上の例では、ログインして `screen` セッションを実行してしまうと、 不幸にもユーザは最も簡単なタスクの実行ですらブロックされてしまうでしょう。 リソースの制限が適応されると、エラーが出力されます。 この例では以下のような出力が行われます。 +ルールを追加する際には、注意すべき点がいくつかあります。 +上の例では、プロセスの数が `10` に制限されているため、ログインして `screen` セッションを実行してしまうと、ユーザによる他のタスクの実行はブロックされてしまうでしょう。 +リソースの制限が適応されると、エラーが出力されます。 +この例では以下のような出力が行われます。 [source,shell] .... @@ -1786,14 +2004,17 @@ user:trhodes:maxproc:deny=10/user eval: Cannot fork: Resource temporarily unavailable .... -他の例としては、man:rctl[8] を使って jail がメモリの制限を超えることを防ぐことができます。 このルールは以下のように書くことができます。 +他の例としては、jail がメモリの制限を超えることを防ぐことができます。 +このルールは以下のように書くことができます。 [source,shell] .... # rctl -a jail:httpd:memoryuse:deny=2G/jail .... -ルールを [.filename]#/etc/rctl.conf# に追加すると、 再起動してもルールは持続します。 フォーマットは、ルールから最初のコマンドの部分を除いたものとなります。 たとえば、上のルールを追加するには、 以下のように追加してください。 +ルールを [.filename]#/etc/rctl.conf# に追加すると、再起動してもルールは持続します。 +フォーマットは、ルールから最初のコマンドの部分を除いたものとなります。 +たとえば、上のルールを追加するには、以下のように追加してください。 [.programlisting] .... @@ -1801,18 +2022,20 @@ eval: Cannot fork: Resource temporarily unavailable jail:httpd:memoryuse:deny=2G/jail .... -ルールを削除するには、`rctl` に対し、 リストから削除するように指定してください。 +ルールを削除するには、`rctl` に対し、リストから削除するように指定してください。 [source,shell] .... # rctl -r user:trhodes:maxproc:deny=10/user .... -マニュアルページには、 ルールをすべて削除する方法が記載されています。 しかしながら、特定のユーザのルールをすべて削除するには、 以下のようなコマンドを実行してください。 +man:rctl[8] には、ルールをすべて削除する方法が記載されています。 +しかしながら、特定のユーザのルールをすべて削除するには、以下のようなコマンドを実行してください。 [source,shell] .... # rctl -r user:trhodes .... -`subjects` をコントロールするリソースは他にも多く用意されています。 これらについて知るには、man:rctl[8] をご覧ください。 +`subjects` をコントロールするリソースは他にも多く用意されています。 +これらについて知るには、man:rctl[8] をご覧ください。 diff --git a/documentation/content/ja/books/handbook/serialcomms/_index.adoc b/documentation/content/ja/books/handbook/serialcomms/_index.adoc index 60596b4a04..d520bafee8 100644 --- a/documentation/content/ja/books/handbook/serialcomms/_index.adoc +++ b/documentation/content/ja/books/handbook/serialcomms/_index.adoc @@ -1,11 +1,12 @@ --- -title: 第18章 シリアル通信 +title: 第17章 シリアル通信 part: パートIV. ネットワーク通信 prev: books/handbook/partiv next: books/handbook/ppp-and-slip showBookMenu: true -weight: 23 -path: "/books/handbook/" +weight: 22 +params: + path: "/books/handbook/serialcomms/" --- [[serialcomms]] @@ -16,7 +17,7 @@ path: "/books/handbook/" :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 18 +:sectnumoffset: 17 :partnums: :source-highlighter: rouge :experimental: diff --git a/documentation/content/ja/books/handbook/users/_index.adoc b/documentation/content/ja/books/handbook/users/_index.adoc deleted file mode 100644 index 120c3ce312..0000000000 --- a/documentation/content/ja/books/handbook/users/_index.adoc +++ /dev/null @@ -1,527 +0,0 @@ ---- -title: 第13章 ユーザと基本的なアカウントの管理 -part: パートIII. システム管理 -prev: books/handbook/boot -next: books/handbook/security -showBookMenu: true -weight: 17 -path: "/books/handbook/" ---- - -[[users]] -= ユーザと基本的なアカウントの管理 -:doctype: book -:toc: macro -:toclevels: 1 -:icons: font -:sectnums: -:sectnumlevels: 6 -:sectnumoffset: 13 -:partnums: -:source-highlighter: rouge -:experimental: -:images-path: books/handbook/users/ - -ifdef::env-beastie[] -ifdef::backend-html5[] -:imagesdir: ../../../../images/{images-path} -endif::[] -ifndef::book[] -include::shared/authors.adoc[] -include::shared/mirrors.adoc[] -include::shared/releases.adoc[] -include::shared/attributes/attributes-{{% lang %}}.adoc[] -include::shared/{{% lang %}}/teams.adoc[] -include::shared/{{% lang %}}/mailing-lists.adoc[] -include::shared/{{% lang %}}/urls.adoc[] -toc::[] -endif::[] -ifdef::backend-pdf,backend-epub3[] -include::../../../../../shared/asciidoctor.adoc[] -endif::[] -endif::[] - -ifndef::env-beastie[] -toc::[] -include::../../../../../shared/asciidoctor.adoc[] -endif::[] - -[[users-synopsis]] -== この章では - -FreeBSD は、複数のユーザが同時にコンピュータを使えるようにします。 スクリーンとキーボードの前に一度に座れるのはその中の一人だけですが ユーザは何人でもネットワークを通してログインできます。 システムを使うためには、 どのユーザもアカウントがなければなりません。 - -この章では、以下のことを説明します。 - -* FreeBSD システムにおけるさまざまな種類のユーザアカウントについて -* ユーザアカウントを追加、削除および変更する方法 -* ユーザやグループが利用できるリソースの上限を制御する方法 -* グループの作成、 およびグループにユーザをメンバとして追加する方法 - -[[users-introduction]] -== アカウントの種類 - -FreeBSD システムへアクセスするには、 かならずアカウントが使われ、 また、プロセスもすべてユーザによって実行されるので、 ユーザとアカウントの管理は、重要なものです。 - -アカウントには大きく分けて三種類あります。 システムアカウント (system accounts)、ユーザアカウント (user accounts)、 そしてスーパーユーザ (superuser) です。 - -[[users-system]] -=== システムアカウント - -システムアカウントは、DNS、メール、 ウェブサーバといった各種サービスを運用するために使われます。 この目的は、セキュリティを確保するためです。 もしすべてのサービスがスーパーユーザで実行されていると、 それらのサービスはどんな動作でも可能となり、 適切な制限を適用することができません。 - -システムアカウントの具体例は、 `daemon`, `operator`, `bind`, `news` および `www` といったものです。 - -`nobody` は通常の特権を持たないシステムアカウントです。 しかし、`nobody` を利用するサービスが増えれば増えるほど、 それに所属するファイルやプロセスも増え、 その特権も大きくなるということを忘れないようにしてください。 - -[[users-user]] -=== ユーザアカウント - -ユーザアカウントは、 主に現実のユーザがシステムにアクセスする手段として用いられるものです。 システムにアクセスするすべてのユーザは、 それぞれ唯一のユーザアカウントを持つべきです。 こうすることで管理者は誰が何を行なっているかがわかりますし、 他の人の設定を壊してしまうようなことを避けることができます。 - -それぞれのユーザは快適にシステムを利用するため、 シェル、エディタ、キー設定、言語など、 各自の環境をセットアップすることができます。 - -FreeBSD システム上のどのアカウントにも、 以下のような情報がなにかしら結び付けられています。 - -ユーザ名:: -`login:` プロンプトに対して入力するユーザの名前です。 ユーザ名はそのシステムで一意でなければならず、 2 名のユーザに同じユーザ名をつけることはできません。 有効なユーザ名を作成するには man:passwd[5] に記載されているいくつもの規則があります。 アプリケーションの上位互換性を保つために、 8 文字以下の小文字からなるユーザ名を使うことが推奨されています。 - -パスワード:: -それぞれのユーザアカウントにはパスワードがあります。 パスワードは空白にもできますが、 行うべきではありません。 - -ユーザ ID (UID):: -ユーザ ID (UID) は、 FreeBSD システムがユーザを一意に識別するための数値です。 ユーザ名を指定できるコマンドは、 ユーザ名を UID に変換してから扱っています。 65535 より大きな UID は、32 ビット以上の整数に対応していないソフトウェアにおいて互換性の問題を引き起こす可能性があるので、 65535 以下の UID を使用することが推奨されています。 - -グループ ID (GID):: -グループ ID (GID) は、 ユーザが属する第一グループを一意に識別するための数値です。 グループは、UID ではなく、 ユーザの GID に基づいて資源へのアクセスを制御する仕組みです。 これは、ある種の設定ファイルのサイズを大幅に小さくします。 ユーザは、複数のグループに所属できます。 65535 より大きな GID は、ソフトウェアに問題を引き起こす可能性があるので、 65535 以下の GID を使うことを推奨します。 - -ログインクラス:: -ログインクラスはグループの仕組みを拡張したもので、 別々のユーザに対してシステムを調整する時に、 さらなる柔軟性を提供します。ログインクラスの詳細については、 <<users-limiting>> で説明します。 - -パスワード変更時間:: -デフォルトでは、FreeBSD は定期的にパスワードを変更することをユーザに強制しません。 これを man:pw[8] を使用してユーザごとに設定し、 一部またはすべてのユーザに、 一定の時間がたったらパスワードを強制的に変更させることができます。 - -アカウント失効時間:: -デフォルトでは、FreeBSD はアカウントを失効させません。 たとえば学校で生徒のアカウントがある場合など、 限られた期間だけのアカウントを作成するなら、 そのアカウントがいつ失効するか man:pw[8] を使って指定できます。 有効期間が経過したら、 そのアカウントのディレクトリやファイルは残っていますが、 システムへのログインはできなくなります。 - -ユーザの氏名:: -FreeBSD ではユーザ名でアカウントを一意に識別しますが、 必ずしもユーザの本名を反映したものではありません。 この情報をアカウントに関連付けることもできます。 この情報は、コメントのように、空白、大文字、および 8 字以上で記載できます。 - -ホームディレクトリ:: -ホームディレクトリは、システム中のディレクトリへのフルパスです。 これはユーザがログインした時に作業を開始するディレクトリです。 一般的な慣習は、すべてのユーザのホームディレクトリを [.filename]#/home/username# か [.filename]#/usr/home/username# の下に置くことです。 各ユーザは、個人のファイルやサブディレクトリを、 ユーザのホームディレクトリに保存します。 - -ユーザシェル:: -シェルは、 ユーザがシステムと対話するデフォルトの環境を提供します。 いろいろな種類のシェルがあり、 経験を積んだユーザはそれぞれ好みがあり、 それをアカウントの設定に反映できます。 - -[[users-superuser]] -=== スーパーユーザアカウント - -スーパーユーザアカウントは通常 `root` と呼ばれ、 システム管理を行なうために使われ、権限に制限がありません。 そのため、このアカウントはメールのやりとり、システムの調査、 プログラミングといった日常的な作業を行なうために使われるべきものではありません。 - -その理由は、スーパーユーザが通常のユーザアカウントと異なり、 操作にまったく制限を受けないことによります。 そのためスーパーユーザアカウントで操作を間違えると、 システムに重大な影響を与えてしまう恐れがあるのです。 ユーザアカウントでは、 仮に操作を間違えてもシステムを壊してしまうようなことはできないようになっています。 そのため、ユーザアカウントでログインし、 高い権限が必要なコマンドを実行するときだけスーパーユーザになることが推奨されています。 - -スーパーユーザで実行するコマンドはいつでも、 二回、三回と確認してください。 なぜならスペースが多かったり、文字が欠けていたりするだけで、 取り返しのつかないデータの破壊につながる可能性があるからです。 - -スーパーユーザの権限を得るには、さまざまな方法があります。 `root` ユーザとしてログインする方法もありますが、 これはまったくお勧めできません。 - -スーパーユーザの権限を手に入れるには、かわりに man:su[1] を使って下さい。 `-` オプションをつけて実行すると、 実行したユーザに root ユーザの環境が設定されます。 このコマンドは `wheel` グループに入ってるユーザのみが実行でき、他のユーザは実行出来ません。 また、実行時には `root` ユーザのパスワードを必要とします。 - -以下の例では、`make install` を行うときにスーパーユーザの権限が必要なので、 このコマンドを実行する時だけユーザはスーパーユーザになります。 コマンドを実行したら、ユーザは `exit` を実行してスーパーユーザからログアウトし、 通常のユーザアカウントの権限に戻ります。 - -.スーパーユーザ権限でプログラムをインストールする -[example] -==== - -[source,shell] -.... -% configure -% make -% su - -Password: -# make install -# exit -% -.... - -==== - -1 人の管理者が一台のマシン、 もしくは小規模なネットワークを管理する場合には、 man:su[1] のフレームワークはうまく機能するでしょう。 この代わりとなるのは、 package:security/sudo[] package または port です。これはログ機能や、 スーパーユーザの権限で実行できるユーザやコマンドを設定できます。 - -[[users-modifying]] -== アカウント情報の管理 - -FreeBSD には、 ユーザアカウントを操作するのにさまざまなコマンドが用意されています。 もっとも一般的なコマンドを以下に示し、 それに続いて詳しい使用例を示します。 - -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| コマンド -| 要約 - -|man:adduser[8] -|コマンドラインからユーザを追加するための推奨アプリケーション - -|man:rmuser[8] -|コマンドラインからユーザを削除するための推奨アプリケーション - -|man:chpass[1] -|ユーザデータベースの情報を変更するための柔軟なツール - -|man:passwd[1] -|ユーザのパスワードを変更する簡単なコマンドラインツール - -|man:pw[8] -|ユーザアカウントのあらゆる箇所を変更する強力で柔軟なツール -|=== - -[[users-adduser]] -=== `adduser` - -man:adduser[8] は、 新しいユーザを登録するためのシンプルなプログラムです。 ユーザを追加すると、 このプログラムは、[.filename]#/etc/passwd# と [.filename]#/etc/group# を自動的に更新します。 また、新規ユーザのホームディレクトリを作成し、 [.filename]#/usr/shared/skel# から、デフォルトで使用される設定ファイルをコピーします。 また、新しく作成されたユーザに対して、 ウェルカムメッセージをメールで送信することも可能です。 - -.FreeBSD におけるユーザの追加 -[example] -==== - -[source,shell] -.... -# adduser -Username: jru -Full name: J. Random User -Uid (Leave empty for default): -Login group [jru]: -Login group is jru. Invite jru into other groups? []: wheel -Login class [default]: -Shell (sh csh tcsh zsh nologin) [sh]: zsh -Home directory [/home/jru]: -Home directory permissions (Leave empty for default): -Use password-based authentication? [yes]: -Use an empty password? (yes/no) [no]: -Use a random password? (yes/no) [no]: -Enter password: -Enter password again: -Lock out the account after creation? [no]: -Username : jru -Password : **** -Full Name : J. Random User -Uid : 1001 -Class : -Groups : jru wheel -Home : /home/jru -Shell : /usr/local/bin/zsh -Locked : no -OK? (yes/no): yes -adduser: INFO: Successfully added (jru) to the user database. -Add another user? (yes/no): no -Goodbye! -# -.... - -==== - -[NOTE] -==== -入力したパスワードは画面に表示されませんので、 ユーザアカウントを作成する際には、 パスワードを間違えて入力してしまわないように注意してください。 -==== - -[[users-rmuser]] -=== `rmuser` - -システムから完全にユーザを削除するには、 man:rmuser[8] を使います。 このコマンドは、次の手順を実行します。 - -[.procedure] -==== -. 指定されたユーザの man:crontab[1] エントリが存在する場合には削除。 -. 指定されたユーザの man:at[1] ジョブをすべて削除。 -. 指定されたユーザが所有するすべてのプロセスを強制終了。 -. ローカルパスワードファイルから、 指定されたユーザのエントリを削除。 -. 指定されたユーザのホームディレクトリを削除 (ディレクトリの所有者が指定されたユーザのものだった場合)。 -. [.filename]#/var/mail# から、指定されたユーザの到着メールファイルを削除。 -. [.filename]#/tmp# のような一時ファイル保存領域から、 指定されたユーザの所有するファイルを削除。 -. そして最後に、 [.filename]#/etc/group# にある すべてのグループから、指定されたユーザを削除します。 -+ -[NOTE] -====== -指定されたユーザと同じ名前のグループで、 そのユーザが削除されると空のグループとなる場合は、 そのグループ自体が削除されます。 これは man:adduser[8] によってユーザごとに作成される、 ユニークなグループに対応するものです。 -====== -==== - -スーパユーザアカウントの削除に man:rmuser[8] を利用することはできません。 スーパユーザアカウントの削除はほとんどすべての場合、 大規模なシステムの破壊を意味するからです。 - -デフォルトでは、以下の例のような対話モードが使われます。 - -.`rmuser` による対話的なアカウントの削除 -[example] -==== - -[source,shell] -.... -# rmuser jru -Matching password entry: -jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh -Is this the entry you wish to remove? y -Remove user's home directory (/home/jru)? y -Updating password file, updating databases, done. -Updating group file: trusted (removing group jru -- personal group is empty) done. -Removing user's incoming mail file /var/mail/jru: done. -Removing files belonging to jru from /tmp: done. -Removing files belonging to jru from /var/tmp: done. -Removing files belonging to jru from /var/tmp/vi.recover: done. -# -.... - -==== - -[[users-chpass]] -=== `chpass` - -man:chpass[1] を用いて、 パスワード、シェル、その他の個人情報といった、 ユーザデータベース情報を変更できます。 - -スーパユーザ権限に限り、 man:chpass[1] を用い、 他のユーザの情報やパスワードを変更できます。 - -ユーザ名の他にオプションを指定しないと、 man:chpass[1] はユーザ情報を編集するエディタを表示します。 ユーザがエディタを終了すると、 ユーザデータベースが新しい情報に更新されます。 - -[NOTE] -==== -スーパユーザでない場合は、 エディタを抜けた後にパスワードを聞かれます。 -==== - -.スーパユーザによる対話的な `chpass` -[example] -==== - -[source,shell] -.... -#Changing user database information for jru. -Login: jru -Password: * -Uid [#]: 1001 -Gid [# or name]: 1001 -Change [month day year]: -Expire [month day year]: -Class: -Home directory: /home/jru -Shell: /usr/local/bin/zsh -Full Name: J. Random User -Office Location: -Office Phone: -Home Phone: -Other information: -.... - -==== - -ユーザは、この情報の限られた部分のみ変更が可能です。 また、変更できるのはそのユーザ自身のアカウント情報のみです。 - -.通常のユーザによる対話的な `chpass` -[example] -==== - -[source,shell] -.... -#Changing user database information for jru. -Shell: /usr/local/bin/zsh -Full Name: J. Random User -Office Location: -Office Phone: -Home Phone: -Other information: -.... - -==== - -[NOTE] -==== -man:chfn[1] および man:chsh[1] はいずれも、 man:chpass[1] へのリンクです。 また、man:ypchpass[1], man:ypchfn[1] および man:ypchsh[1] も同様です。 NIS のサポートは自動的に行なわれますので、 コマンドの先頭に `yp` をつける必要はありません。 NIS の設定については、 で説明されています。 -==== - -[[users-passwd]] -=== `passwd` - -man:passwd[1] は、 ユーザが自分のパスワードを変更する通常の方法です。 スーパユーザ権限では、 他のユーザのパスワードを変更するのに使われます。 - -[NOTE] -==== -誤って、または不正なパスワードの変更を避けるため、 新しいパスワードを設定する前に、 もとのパスワードを入力しなければなりません。 スーパーユーザの権限でユーザのパスワードを変更する際には、 もとのパスワードを入力する必要はありません。 -==== - -.自分のパスワードの変更 -[example] -==== - -[source,shell] -.... -% passwd -Changing local password for jru. -Old password: -New password: -Retype new password: -passwd: updating the database... -passwd: done -.... - -==== - -.スーパーユーザ権限での他のユーザのパスワード変更 -[example] -==== - -[source,shell] -.... -# passwd jru -Changing local password for jru. -New password: -Retype new password: -passwd: updating the database... -passwd: done -.... - -==== - -[NOTE] -==== -man:chpass[1] 同様、man:yppasswd[1] は、 man:passwd[1] へのリンクになっていますので、 NIS はどちらのコマンドでも動作します。 -==== - -[[users-pw]] -=== `pw` - -man:pw[8] は、ユーザやグループの作成、削除、 変更および表示を行なうコマンドラインのユーティリティです。 これは、システムユーザファイルやシステムグループファイルの フロントエンドとして働きます。man:pw[8] はとても強力な一連のコマンドラインオプションを有しており、 シェルスクリプトで使うのに向いていますが、新しいユーザは、 この章で紹介されている他のコマンドに比べて難しいと感じるかもしれません。 - -[[users-limiting]] -== ユーザへの制限 - -FreeBSD は、 個々のユーザが利用できるシステム資源の量を管理者が制限できる方法をいくつも用意しています。 その種の制限は、ディスククォータ (quota) とその他の資源の制限の 2 つの章で説明します。 - -ディスククォータは、ユーザが利用できるディスク容量を制限し、 その都度計算しなくてもディスク使用量を簡単に確認できる手段も提供しています。 クォータについては、crossref:disks[quotas,「ファイルシステムクォータ」] で解説しています。 - -その他のリソースの制限とは、ユーザが消費できる CPU、メモリなどのリソースを制限する手段のことです。 これはログインクラスを用いて定義されているもので、 この後で解説しています。 - -ログインクラスは [.filename]#/etc/login.conf# で定義します。詳細な説明は man:login.conf[5] に詳しく記載されています。 各ユーザアカウントにはログインクラスが割り当てられていて (デフォルトでは `default` です)、 それぞれのログインクラスにはログインケーパビリティの集合が割り当てられています。 ログインケーパビリティとは、 `名称=値` の組のことで、_名称_ は周知の識別子、_値_ は、_名称_ に応じて処理される任意の文字列です。 ログインクラスとケーパビリティを設定するのはどちらかといえば簡単なことで、 man:login.conf[5] でも説明されています。 - -[NOTE] -==== -FreeBSD は通常、直接 [.filename]#/etc/login.conf# から設定を読み込まず、 より速く検索できる [.filename]#/etc/login.conf.db# データベースから読み込みます。[.filename]#/etc/login.conf# を編集する時には [.filename]#/etc/login.conf.db# を次のコマンドを実行してアップデートする必要があります。 - -[source,shell] -.... -# cap_mkdb /etc/login.conf -.... - -==== - -リソースの制限は、 2 つの点で標準的なログインケーパビリティと異なっています。 第一に、どの制限についても、ソフト (現在の) リミットとハードリミットがあります。 ソフトリミットは、ユーザやアプリケーションが調整できますが、 ハードリミットを超えることはできません。 ユーザはハードリミットを下げることはできますが、 上げることはスーパユーザのみができます。 第二に、ほとんどのリソースの制限は特定のユーザに対してプロセス毎に適用されるもので、 そのユーザが利用するリソースの総量を制限するものではありません。 ただし、この違いは制限を特別扱いすることで実現されるものであり、 ログインケーパビリティフレームワークの実装によるものではありません。 - -以下が最もよく使われるリソースの制限になります。 残りは、他のすべてのログインケーパビリティと並んで man:login.conf[5] に書かれています。 - -`coredumpsize`:: -プログラムが生成する core ファイルのサイズにかかる制限は、 `filesize` やディスククォータなどの、 ほかのディスク使用に関する制限に従属します。 この制限は、ディスク領域の消費を制御するあまり厳しくない手段としてよく使われています。 ユーザは core ファイルを自分で生成するわけではなく、 削除しないことも多いので、 これを設定すれば大きなプログラムが異常終了してもディスクの空きがなくならずに済みます。 - -`cputime`:: -そのユーザのプロセスが消費できる CPU 時間 の上限です。 これを超えたプロセスは、カーネルにより終了されます。 -+ - -[NOTE] -==== -これは、消費される CPU _時間_ についての制限であって、man:top[1] や man:ps[1] のフィールドで表示される CPU の割合に関するものではありません。 -==== - -`filesize`:: -ユーザが所有できるファイルの大きさの上限です。crossref:disks[quotas,ディスククォータ] と違い、 この制限はユーザのファイルをすべてまとめた集合にではなく、 個々のファイルにかかります。 - -`maxproc`:: -ユーザが実行できるプロセス数の上限です。 フォアグラウンドプロセスとバックグラウンドプロセスの両方を扱います。 この上限は、man:sysctl[8] 変数 `kern.maxproc` で指定されたシステムの制限を超えることはできません。 同時に複数ログインすることや、 パイプライン実行することは便利なことが多いので、 この値をあまり小さな値に設定すると、 そのユーザの生産性が悪化する可能性があります。 大きなプログラムをコンパイルする場合のように、 タスクによっては複数のプロセスやプリプロセッサが実行されます。 - -`memorylocked`:: -これは、1 つのプロセスが man:mlock[2] によりメインメモリにロックされることを要求できるメモリの最大容量です。 man:amd[8] のようなシステムで重要なプログラムは、 メインメモリへロックして、システムがスワップする際に、 ディスクのスラッシングを引き起こさないようにします。 - -`memoryuse`:: -これは、どの時点かを問わず、 あるプロセスが消費できる最大のメモリ容量です。 これは、メインメモリとスワップの使用量を合わせたものです。 メモリ消費を抑えるための包括的な制限ではありませんが、 手始めにはよいでしょう。 - -`openfiles`:: -これは、あるプロセスが開いておける最大のファイル数です。 FreeBSD では、ファイルはまた、ソケットや IPC チャンネルを表わすのにも使われています。 ですから、あまり低い値に設定しないよう注意してください。 これに対応するシステム全体の制限は man:sysctl[8] `kern.maxfiles` で定義されています。 - -`sbsize`:: -これは、あるユーザが消費できるネットワークメモリ (つまり mbuf) の上限の量です。ユーザは、 ネットワーク通信を制限するのに使えます。 - -`stacksize`:: -これは、プロセスのスタックサイズの上限です。 あるプログラムが使用しうるメモリの量を制限するには、 これだけでは十分ではありません。 したがって、他の制限と組み合わせて使わなければなりません。 - -リソースの制限を設定するにあたり、 ほかにもいくつか覚えておかなければならないことがあります。 以下は、一般的なこつやお勧め、さまざまなコメントになります。 - -* システム起動時に [.filename]#/etc/rc# から起動されたプロセスは、`daemon` ログインクラスに割り当てられます。 -* システムに付属していた [.filename]#/etc/login.conf# はほとんどの制限について妥当な値になっていますが、 すべてのシステムにおいてふさわしいというわけではありません。 制限をあまり緩くするとシステムを悪用しやすくしてしまいますし、 厳しくしすぎると生産性を悪化させてしまいます。 -* Xorg のユーザには、 他のユーザより多くのリソースを与えるべきかもしれません。 Xorg そのものが多くのリソースを使うだけでなく、 より多くのプログラムを並行して使うことをユーザに促します。 -* 多くの制限は個々のプロセスにかかるもので、 一人のユーザにまとめてかかるものではありません。 例えば、`openfiles` を 50 に設定することは、 ユーザが動かすそれぞれのプロセスが最大 50 個のファイルを開けるということです。 あるユーザが開けるファイルの総数は、 `openfiles` の値に `maxproc` をかけたものになります。 同じことがメモリ消費量にもあてはまります。 - -リソースの制限と、ログインクラス、 ログインケーパビリティ一般についての詳しい情報は、 man:cap.mkdb[1], man:getrlimit[2] および man:login.conf[5] をご覧ください。 - -[[users-groups]] -== グループの管理 - -グループとは、ユーザを羅列したものです。 グループは、グループ名と GID で識別されます。 FreeBSD では、 あるプロセスが何かするのを許可するかどうかをカーネルが判断する際に、 プロセスの UID とそのユーザが所属するグループの一覧を利用します。 ほとんどの場合、ユーザもしくはプロセスの GID は一覧の最初のグループを指しています。 - -グループ名から GID への写像は [.filename]#/etc/group# にあります。 これは、コロンで区切られた 4 項目からなるテキストファイルです。 1 番目の項目はグループ名、 2 番目は暗号化されたパスワード、 3 番目が GID、 4 番目がカンマで区切られたメンバの一覧です。 文法についての完全な説明は、man:group[5] をご覧ください。 - -スーパーユーザは、[.filename]#/etc/group# をテキストエディタで編集できます。 もしくは、man:pw[8] を使ってグループの追加や編集をできます。 たとえば、`teamtwo` というグループを追加して、その存在を確認するには、 次のように使います。 - -.man:pw[8] によるグループの追加 -[example] -==== - -[source,shell] -.... -# pw groupadd teamtwo -# pw groupshow teamtwo -teamtwo:*:1100: -.... - -==== - -この例では、`1100` という番号は、 `teamtwo` の GID です。 この時点では、`teamtwo` にメンバはいません。 以下のコマンドは、 `jru` を `teamtwo` のメンバに追加します。 - -.man:pw[8] により新しいグループにメンバを追加する -[example] -==== - -[source,shell] -.... -# pw groupmod teamtwo -M jru -# pw groupshow teamtwo -teamtwo:*:1100:jru -.... - -==== - -`-M` の引数は、 カンマで区切られた新しい (空の) グループに追加するもしくは存在するグループのメンバを置き換えるユーザの一覧です。 ユーザにとっては、このグループのメンバーシップはパスワードファイルに記載されているプライマリのグループとは異なります。 man:pw[8] の `groupshow` コマンドを使った時は、 そのユーザはグループの一員として表示されませんが、man:id[1] などのツールを使って情報を問い合わせれば、 その情報を引き出せます。ユーザをグループに追加をする際に、man:pw[8] は [.filename]#/etc/group# しか扱わず、 [.filename]#/etc/passwd# から追加のデータを読んだりはしません。 - -.man:pw[8] によるグループへのユーザ追加 -[example] -==== - -[source,shell] -.... -# pw groupmod teamtwo -m db -# pw groupshow teamtwo -teamtwo:*:1100:jru,db -.... - -==== - -この例では、`-m` の引数は、 カンマで区切られたグループに追加するユーザの一覧です。 前の例と異なり、これらのユーザはグループ一覧に追加され、 グループのユーザ一覧を置き換えることはありません。 - -.グループに所属しているユーザを調べるための man:id[1] の使い方 -[example] -==== - -[source,shell] -.... -% id jru -uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) -.... - -==== - -この例では、`jru` は `jru` グループと `teamtwo` グループのメンバです。 - -このコマンドや [.filename]#/etc/group# のフォーマットの詳細については、 man:pw[8] および man:group[5] をご覧ください。 diff --git a/documentation/content/ja/books/handbook/x11/_index.adoc b/documentation/content/ja/books/handbook/x11/_index.adoc index 2f41cb5e6e..7019c1d83c 100644 --- a/documentation/content/ja/books/handbook/x11/_index.adoc +++ b/documentation/content/ja/books/handbook/x11/_index.adoc @@ -7,7 +7,8 @@ description: この章では、グラフィカル環境で使われるオープ tags: ["X11", "Xorg", "TrueType", "DE", "KDE", "Plasma", "Xfce", "Gnome", "XDM", "SDDM", "GDM", "KMS", "Intel", "AMD", "NVIDIA", "Anti-Aliased"] showBookMenu: true weight: 7 -path: "/books/handbook/" +params: + path: "/books/handbook/x11/" --- [[x11]] @@ -833,7 +834,7 @@ Xorg は、 ログインセッションの管理に用いることのできる X === XDM の設定 XDM をインストールするには、 package:x11/xdm[] package または port を使ってください。 -インストール後、コンピュータの起動時に、XDM を起動するように設定するには、[.filename]#/etc/ttys# に以下の行を追加してください。 +インストール後、コンピュータの起動時に、XDM を起動するように設定するには、[.filename]#/etc/rc.conf# に以下の行を追加してください。 [.programlisting] .... @@ -909,14 +910,14 @@ GNOME はユーザフレンドリなデスクトップ環境です。 アプリ [source,shell] .... -# pkg install gnome3 +# pkg install gnome .... ports から GNOME を構築するには、以下のコマンドを実行してください。 GNOME は大きなアプリケーションなので、 コンパイルには高速のコンピュータでも時間がかかります。 [source,shell] .... -# cd /usr/ports/x11/gnome3 +# cd /usr/ports/x11/gnome # make install clean .... |