From nobody Sat Feb 18 08:52:20 2023 X-Original-To: dev-commits-doc-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PJj9c52Pxz3rsv2 for ; Sat, 18 Feb 2023 08:52:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PJj9c48lWz4Kfm; Sat, 18 Feb 2023 08:52:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1676710340; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5L5arqA6Z+UU85dwYvzfh6hrrBQHLosEFwF3/B6oJQQ=; b=WmFP66n+VH6+4m45xQZXx0lH/l0sYVBz+ADTno9QH/dJ662oda6YtXIL0HhCdB6foQCQKe SXGvWnWHP7aAwI+Z18a/TxCrxlaap9kdGbu1Fj73+oqlgqdQL9GjfcEs9yR5M2Jg3v1Wlq 9pJA4DfMSNRB35rnYplCs433emZPL93zvhNKN3IA97iVcvmiLJASBBkUCIuX9Eh2MM9DyJ iBlE4ejDBZ08G3Zogn8JRJM8dqkPeIVpxsZPo0huC+kIRxaYhpVAmnGtZrjxbSaMMIGTyD LwHmIqBRPbpsRkJ8VEXxWc9h6y01M8EdDjFTECqQm6JxGqK9ZrcufLtk8d1H0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1676710340; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5L5arqA6Z+UU85dwYvzfh6hrrBQHLosEFwF3/B6oJQQ=; b=Kwn0/Ez8bdyjYA5b7j3Siz/N6ScohEX2svg4I0bc0v7UhFhCw2fCJHRE+BZQ7w0kDNWIdB g0FhESUa3M1z5G91SZLSoMXhSuc6p94xjfza+F8HAlm9G9otSwSndHkB7nyyEjO7zneloO oiHuFDEMYXz3+bwAQg1NkjjjArTmbHZQp6uA2mlkFTOGsUvkUHjCxgIgv/o7e8x3oJY8F/ CqiAu0BHjJGpELAOva6jVQqn57ktAS7twzouq5mS1LHsi//D15SlNIhFJX1x8vY/QoxSN9 PkxyBa8zKxeqY6CSbbOfBnAv1HC+jEu1UZTAF2oPfVGzW9t0KvYn6pbTGFVgcQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1676710340; a=rsa-sha256; cv=none; b=Vz41bof4JzoYOR5uziVNGYPZ35H4vELbGzJg0dfotU7qE6twEn4ujEwyuBlyjnL9sxVMwN /Li8w/d/stq+D9eOdFwhFn/EDP7agrog6EZ+DyKaHS7DJPXMUDZ2fWUykDz9DrhivYCGi4 /WRXqS/lrEKJ/SzZkMxwa/GYBJa1Ynypr2QjtqUAH3p6gozE3JgIRvinuEnNic5hcmJiOf bRYhFRkcC0JZCRV2ebTVS+C/IxVzhHGbPd34QBfst4kcYeUkOIVniuZXpxnkD8Z5/+egcx NF7HyOld5UDl8ogDTm9F9aZBI/oW47cIgSQ17Kb4r8TwDUV7XmNacZBx7J2Pow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4PJj9c3DGDzG8G; Sat, 18 Feb 2023 08:52:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 31I8qKVe008119; Sat, 18 Feb 2023 08:52:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 31I8qKKJ008118; Sat, 18 Feb 2023 08:52:20 GMT (envelope-from git) Date: Sat, 18 Feb 2023 08:52:20 GMT Message-Id: <202302180852.31I8qKKJ008118@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Ryusuke SUZUKI Subject: git: a705dc0b4d - main - ja/handbook: Update basics chapter List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-doc-all@freebsd.org X-BeenThere: dev-commits-doc-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ryusuke X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a705dc0b4dc28626cd7a692c49ab1c74bc20e979 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by ryusuke: URL: https://cgit.FreeBSD.org/doc/commit/?id=a705dc0b4dc28626cd7a692c49ab1c74bc20e979 commit a705dc0b4dc28626cd7a692c49ab1c74bc20e979 Author: Ryusuke SUZUKI AuthorDate: 2023-02-18 08:51:52 +0000 Commit: Ryusuke SUZUKI CommitDate: 2023-02-18 08:51:52 +0000 ja/handbook: Update basics chapter 5821e118dd -> 0536b0e716 --- .../content/ja/books/handbook/basics/_index.adoc | 434 +++++++++++---------- 1 file changed, 224 insertions(+), 210 deletions(-) diff --git a/documentation/content/ja/books/handbook/basics/_index.adoc b/documentation/content/ja/books/handbook/basics/_index.adoc index 59822b8c49..bd1158465d 100644 --- a/documentation/content/ja/books/handbook/basics/_index.adoc +++ b/documentation/content/ja/books/handbook/basics/_index.adoc @@ -84,12 +84,12 @@ login: 最初の行はシステムの情報です。 `amd64` は、このシステム上で 64 ビット版の FreeBSD が動作していることを示しています。 -ホスト名は `pc3.example.org`、[.filename]#ttyv0# は "システムコンソール" であることを示しています。 +ホスト名は `pc3.example.org`、`ttyv0` は "システムコンソール" であることを示しています。 次の行はログインプロンプトです。 FreeBSD はマルチユーザシステムなので、ユーザを区別する何がしかの手段が必要です。 システム上のプログラムを実行できるようになるには、すべてのユーザに対してシステムにログインすることが義務付けられています。 -すべてのユーザは、一意な名前である "ユーザ名" と "パスワード" を持っています。 +すべてのユーザは、一意な "ユーザ名" と "パスワード" を持っています。 システムコンソールにログインするには、システムのインストール時に crossref:bsdinstall[bsdinstall-addusers,ユーザの追加] で追加したユーザ名を入力して、kbd:[Enter] を押してください。 次にそのユーザのパスワードを入力して、kbd:[Enter] を押してください。 @@ -111,8 +111,8 @@ FreeBSD はマルチユーザシステムなので、ユーザを区別する何 これにより、グラフィカルな環境において同時に複数のウィンドウを開いてコマンドラインの環境を提供できます。 FreeBSD では kbd:[Alt+F1] から kbd:[Alt+F8] までのキーの組み合わせが、仮想コンソール間の切り替えに予約されています。 -システムコンソール ([.filename]#ttyv0#) に切り替えるには、kbd:[Alt+F1] を使ってください。 -最初の仮想コンソール ([.filename]#ttyv1#) にアクセスするには kbd:[Alt+F2]、2 番目の仮想コンソール ([.filename]#ttyv2#) にアクセスするには kbd:[Alt+F3]、といったように使ってください。 +システムコンソール (`ttyv0`) に切り替えるには、kbd:[Alt+F1] を使ってください。 +最初の仮想コンソール (`ttyv1`) にアクセスするには kbd:[Alt+F2]、2 番目の仮想コンソール (`ttyv2`) にアクセスするには kbd:[Alt+F3]、といったように使ってください。 Xorg をグラフィカルなコンソールとして使用しているときには、kbd:[Ctrl+Alt+F1] の組み合わせを使用すると、テキストベースの仮想コンソールへ戻ります。 あるコンソールから他に切り替えるのに応じて、FreeBSD は画面への出力を管理します。 @@ -121,7 +121,7 @@ Xorg をグラフィカルなコンソールとして使用しているときに FreeBSD のコンソールおよびキーボードドライバに関するさらなる技術的な説明については、man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] および man:vt[4] を参照してください。 -FreeBSD では以下の [.filename]#/etc/ttys# のように複数の利用可能な仮想コンソールが設定されています。 +FreeBSD では以下の `/etc/ttys` のセクションのように複数の利用可能な仮想コンソールが設定されています。 [.programlisting] .... @@ -140,9 +140,9 @@ ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure .... 仮想コンソールを無効にするには、無効にしたい仮想コンソールの行をコメント記号 (`+#+`) から始まるように設定してください。 -たとえば、利用可能な仮想コンソールを 8 つから 4 つに減らす場合には、 [.filename]##ttyv5## から [.filename]##ttyv8## までの仮想コンソールを表す最後の 4 行の先頭に `+#+` を挿入してください。 -システムコンソールを表す [.filename]##ttyv0## から始まる行はコメントアウト _しないでください。_ -最後の仮想コンソール ([.filename]##ttyv8##) は、Xrog がインストールされ crossref:x11[x11,X Window System] で説明されているように設定されている場合に、グラフィカル環境にアクセスするために使用されます。 +たとえば、利用可能な仮想コンソールを 8 つから 4 つに減らす場合には、`ttyv5` から `ttyv8` までの仮想コンソールを表す最後の 4 行の先頭に `+#+` を挿入してください。 +システムコンソールを表す `ttyv0` から始まる行はコメントアウト _しないでください。_ +最後の仮想コンソール (`ttyv8`) は、 crossref:x11[x11,X Window System] で説明されているように Xrog がインストールされて設定されている場合に、グラフィカル環境にアクセスするために使用されます。 このファイルのそれぞれのカラムと仮想コンソールに設定可能なオプションの詳しい説明は、man:ttys[5] のマニュアルを参照してください。 @@ -155,7 +155,7 @@ FreeBSD のブートメニューでは、"シングルユーザモード" と表 シングルユーザモードで動かしている場合は、ネットワークや他の仮想コンソールは利用できません。 しかし、システムへの完全な `root` 権限を利用でき、デフォルトの設定では `root` のパスワードは必要ありません。 このような理由のため、このモードで起動する場合には物理的なキーボードへのアクセスが必要であり、FreeBSD システムの安全性の観点からキーボードに物理的にアクセスできる人を決めておく事が必要です。 -シングルユーザモードを管理する設定は、[.filename]#/etc/ttys# ファイルの以下のセクションにあります。 +シングルユーザモードを管理する設定は、`/etc/ttys` ファイルの以下のセクションにあります。 [.programlisting] .... @@ -204,7 +204,7 @@ FreeBSD のデフォルトのビデオモードは 1024x768 や 1280x1024 など # vidcontrol MODE_279 .... -このビデオモードで良ければ、起動時に自動的に設定されるように [.filename]#/etc/rc.conf# に以下のように追加してください。 +このビデオモードで良ければ、起動時に自動的に設定されるように `/etc/rc.conf` に以下のように追加してください。 [.programlisting] .... @@ -237,13 +237,6 @@ FreeBSD システムへアクセスするには、 かならずアカウント システムアカウントの具体例は、 `daemon`, `operator`, `bind`, `news` および `www` といったものです。 -[WARNING] -==== - -operator グループを使う時には、意図しないスーパーユーザへのアクセス権を与える可能性があるため注意が必要です。 -シャットダウン、リブートおよびこのグループが所有する [.filename]#/dev# のすべてにアクセスできるといったことが可能になってしまいます。 -==== - `nobody` は通常の特権を持たないシステムアカウントです。 しかし、`nobody` を利用するサービスが増えれば増えるほど、 それに所属するファイルやプロセスも増え、 その特権も大きくなるということを忘れないようにしてください。 [[users-user]] @@ -285,7 +278,10 @@ FreeBSD システム上のどのアカウントにも、 以下のような情 FreeBSD ではユーザ名でアカウントを一意に識別しますが、 必ずしもユーザの本名を反映したものではありません。 この情報をアカウントに関連付けることもできます。 この情報は、コメントのように、空白、大文字、および 8 字以上で記載できます。 ホームディレクトリ:: -ホームディレクトリは、システム中のディレクトリへのフルパスです。 これはユーザがログインした時に作業を開始するディレクトリです。 一般的な慣習は、すべてのユーザのホームディレクトリを [.filename]#/home/username# か [.filename]#/usr/home/username# の下に置くことです。 各ユーザは、個人のファイルやサブディレクトリを、 ユーザのホームディレクトリに保存します。 +ホームディレクトリは、システム中のディレクトリへのフルパスです。 +これはユーザがログインした時に作業を開始するディレクトリです。 +一般的な慣習は、すべてのユーザのホームディレクトリを `/home/username` か `/usr/home/username` の下に置くことです。 +各ユーザは、個人のファイルやサブディレクトリを、ユーザのホームディレクトリに保存します。 ユーザシェル:: シェルは、 ユーザがシステムと対話するデフォルトの環境を提供します。 いろいろな種類のシェルがあり、 経験を積んだユーザはそれぞれ好みがあり、 それをアカウントの設定に反映できます。 @@ -332,7 +328,7 @@ FreeBSD は、ユーザアカウントを操作するためにさまざまなコ [[users-modifying-utilities]] .ユーザアカウントを管理するためのユーティティ -[cols="1,1", frame="none", options="header"] +[cols="25h,~"] |=== | コマンド | 要約 @@ -351,14 +347,17 @@ FreeBSD は、ユーザアカウントを操作するためにさまざまなコ |man:pw[8] |ユーザアカウントのあらゆる箇所を変更する強力で柔軟なツール + +|man:bsdconfig[8] +|システムの設定のためのユーティリティ。アカウント管理に対応しています。 |=== [[users-adduser]] -==== `adduser` +==== ユーザの追加 新しいユーザの登録に推奨されるプログラムは man:adduser[8] です。 -ユーザを追加すると、このプログラムは、[.filename]#/etc/passwd# と [.filename]#/etc/group# を自動的に更新します。 -また、新規ユーザのホームディレクトリを作成し、 [.filename]#/usr/share/skel# から、デフォルトで使用される設定ファイルをコピーします。 +ユーザを追加すると、このプログラムは、`/etc/passwd` と `/etc/group` を自動的に更新します。 +また、新規ユーザのホームディレクトリを作成し、`/usr/share/skel` から、デフォルトで使用される設定ファイルをコピーします。 また、新しく作成されたユーザに対して、ウェルカムメッセージをメールで送信することも可能です。 このユーティリティは、スーパーユーザ権限で実行する必要があります。 @@ -402,7 +401,6 @@ OK? (yes/no): yes adduser: INFO: Successfully added (jru) to the user database. Add another user? (yes/no): no Goodbye! -# .... ==== @@ -412,22 +410,25 @@ Goodbye! ==== [[users-rmuser]] -==== `rmuser` +==== ユーザの削除 システムから完全にユーザを削除するには、スーパーユーザ権限で man:rmuser[8] を実行してください。 このコマンドは、次の手順を実行します。 [.procedure] +==== . 指定されたユーザの man:crontab[1] エントリが存在する場合には削除。 . 指定されたユーザの man:at[1] ジョブをすべて削除。 -. 指定されたユーザが所有するすべてのプロセスを強制終了。 +. 指定されたユーザが所有するすべてのプロセスに対して SIGKILL シグナルを送信。 . ローカルパスワードファイルから、 指定されたユーザのエントリを削除。 -. (選択した場合は) 指定されたユーザのホームディレクトリを削除 (ディレクトリの所有者が指定されたユーザのものだった場合)。 -. [.filename]#/var/mail# から、指定されたユーザの到着メールファイルを削除。 -. [.filename]#/tmp# のような一時ファイル保存領域から、 指定されたユーザの所有するファイルを削除。 -. そして最後に、 [.filename]#/etc/group# にある すべてのグループから、指定されたユーザを削除します。 -指定されたユーザと同じ名前のグループで、そのユーザが削除されると空のグループとなる場合は、そのグループ自体が削除されます。 -これは man:adduser[8] によってユーザごとに作成される、ユニークなグループに対応するものです。 +. 指定されたユーザのホームディレクトリを削除 (ディレクトリの所有者が指定されたユーザのものだった場合)。実際のホームディレクトリへのシンボリックリンクの削除も含まれます。 +. `/var/mail` から、指定されたユーザの到着メールファイルを削除。 +. `/tmp`, `/var/tmp`, および `/var/tmp/vi.recover` から、指定されたユーザの所有するファイルを削除。 +. `/etc/group` にある すべてのグループから、指定されたユーザを削除します +(指定されたユーザと同じ名前のグループで、そのユーザが削除されると空のグループとなる場合は、そのグループ自体が削除されます。 +これは man:adduser[8] によってユーザごとに作成される、ユニークなグループに対応するものです)。 +. 指定されたユーザが所有するすべてのメッセージキュー、共通メモリセグメントおよびセマフォを削除 +==== スーパユーザアカウントの削除に man:rmuser[8] を利用することはできません。 スーパユーザアカウントの削除はほとんどすべての場合、 大規模なシステムの破壊を意味するからです。 @@ -444,12 +445,11 @@ 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]] -==== `chpass` +==== ユーザ情報の変更 すべてのユーザは、man:chpass[1] を用いてデフォルトシェルやユーザアカウントに関連した個人情報を変更できます。 スーパユーザ権限に限り、このユーティリティを用いて他のユーザのアカウント情報も変更できます。 @@ -514,7 +514,7 @@ NIS の設定については、ネットワークサーバの章で説明され ==== [[users-passwd]] -==== `passwd` +==== ユーザのパスワードの変更 いかなるユーザも man:passwd[1] を使って簡単に自身のパスワードを変更できます。 誤って、または不正なパスワードの変更を避けるため、新しいパスワードを設定する前に、もとのパスワードの入力が求められます。 @@ -558,7 +558,7 @@ man:chpass[1] 同様、man:yppasswd[1] は、 man:passwd[1] へのリンクに ==== [[users-pw]] -==== `pw` +==== システムユーザおよびグループの作成、削除、変更および表示 man:pw[8] は、ユーザやグループの作成、削除、変更および表示を行なうコマンドラインのユーティリティです。 これは、システムユーザファイルやシステムグループファイルのフロントエンドとして働きます。 @@ -569,9 +569,21 @@ man:pw[8] はとても強力な一連のコマンドラインオプションを グループとは、ユーザを羅列したものです。 グループは、グループ名と GID で識別されます。 FreeBSD では、 あるプロセスが何かするのを許可するかどうかをカーネルが判断する際に、 プロセスの UID とそのユーザが所属するグループの一覧を利用します。 ほとんどの場合、ユーザもしくはプロセスの GID は一覧の最初のグループを指しています。 -グループ名から GID への写像は [.filename]#/etc/group# にあります。 これは、コロンで区切られた 4 項目からなるテキストファイルです。 1 番目の項目はグループ名、 2 番目は暗号化されたパスワード、 3 番目が GID、 4 番目がカンマで区切られたメンバの一覧です。 文法についての完全な説明は、man:group[5] をご覧ください。 +グループ名から GID への写像は `/etc/group` にあります。 +これは、コロンで区切られた 4 項目からなるテキストファイルです。 +1 番目の項目はグループ名、2 番目は暗号化されたパスワード、3 番目が GID、4 番目がカンマで区切られたメンバの一覧です。 +文法についての完全な説明は、man:group[5] をご覧ください。 + +スーパーユーザは、`/etc/group` をテキストエディタで編集できます。 +ただし、よくある間違いを見つけてくれる man:vigr[8] を用いてグループファイルを編集することが好ましいです。 +もしくは、man:pw[8] を使ってグループの追加や編集をできます。 +たとえば、`teamtwo` というグループを追加して、その存在を確認するには、次のように使います。 -スーパーユーザは、[.filename]#/etc/group# をテキストエディタで編集できます。 もしくは、man:pw[8] を使ってグループの追加や編集をできます。 たとえば、`teamtwo` というグループを追加して、その存在を確認するには、 次のように使います。 +[WARNING] +==== +operator グループを使う時には、意図しないスーパーユーザへのアクセス権を与える可能性があるため注意が必要です。 +シャットダウン、リブートおよびこのグループが所有する `/dev` のすべてにアクセスできるといったことが可能になってしまいます。 +==== .man:pw[8] によるグループの追加 [example] @@ -597,7 +609,10 @@ teamtwo:*:1100:jru .... ==== -`-M` の引数は、 カンマで区切られた新しい (空の) グループに追加するもしくは存在するグループのメンバを置き換えるユーザの一覧です。 ユーザにとっては、このグループのメンバーシップはパスワードファイルに記載されているプライマリのグループとは異なります。 man:pw[8] の `groupshow` コマンドを使った時は、 そのユーザはグループの一員として表示されませんが、man:id[1] などのツールを使って情報を問い合わせれば、 その情報を引き出せます。ユーザをグループに追加をする際に、man:pw[8] は [.filename]#/etc/group# しか扱わず、 [.filename]#/etc/passwd# から追加のデータを読んだりはしません。 +`-M` の引数は、カンマで区切られた新しい (空の) グループに追加するもしくは存在するグループのメンバを置き換えるユーザの一覧です。 +ユーザにとっては、このグループのメンバーシップはパスワードファイルに記載されているプライマリのグループとは異なります。 +man:pw[8] の `groupshow` コマンドを使った時は、そのユーザはグループの一員として表示されませんが、man:id[1] などのツールを使って情報を問い合わせれば、その情報を引き出せます。 +ユーザをグループに追加をする際に、man:pw[8] は `/etc/group` しか扱わず、 `/etc/passwd` から追加のデータを読んだりはしません。 .man:pw[8] によるグループへのユーザ追加 [example] @@ -625,7 +640,7 @@ uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) この例では、`jru` は `jru` グループと `teamtwo` グループのメンバです。 -このコマンドや [.filename]#/etc/group# のフォーマットの詳細については、 man:pw[8] および man:group[5] をご覧ください。 +このコマンドや `/etc/group` のフォーマットの詳細については、 man:pw[8] および man:group[5] をご覧ください。 [[permissions]] == 許可属性 @@ -698,7 +713,7 @@ total 530 -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt .... -一番目の列の最初の (一番左の) 文字は、そのファイルが普通のファイルなのか、ディレクトリなのか、キャラクタ型のデバイス特殊ファイルなのか、ソケットなのか、その他の特殊な疑似ファイルデバイスなのかといった種類を示す特別な文字です。 +`myfile` が含まれている行の一番目の列の最初の `(一番左の)` 文字は、そのファイルが普通のファイルなのか、ディレクトリなのか、キャラクタ型のデバイス特殊ファイルなのか、ソケットなのか、その他の特殊な疑似ファイルデバイスなのかといった種類を示す特別な文字です。 この例において、`-` という文字は、普通のファイルであることを示します。 その次に来る `rw-` と書かれた 3 文字は、そのファイルの所有者に許可を与えるものです。 その次の `r--` の 3 文字は、そのファイルが所属しているグループに許可を与えます。 @@ -711,7 +726,7 @@ total 530 デバイスの場合の許可属性はどのようにコントロールされているのでしょうか? FreeBSD は、大部分のハードウェアをファイルとして取り扱います。 そのため、プログラムからは普通のファイルとまったく同じようにオープンし、 データの読み書きができるようになっています。 -これらのデバイス特殊ファイルは [.filename]#/dev/# に収められています。 +これらのデバイス特殊ファイルは `/dev/` に収められています。 ディレクトリもまた、ファイルと同様に扱われます。 それは読み込み/書き込み/実行の許可属性を持ちます。 @@ -788,7 +803,7 @@ FreeBSD は、大部分のハードウェアをファイルとして取り扱い |=== これらの値は、これまでと同様に man:chmod[1] で用いますが、数字ではなく文字で指定します。 -たとえば、_FILE_ に対して自分以外のユーザからアクセスを一切受け付けたくない、というときには以下のコマンドを実行してください。 +たとえば、_FILE_ に対して _FILE_ のグループメンバーおよび自分以外のすべてのユーザからアクセスを一切受け付けたくない、というときには以下のコマンドを実行してください。 [source,shell] .... @@ -810,7 +825,7 @@ FreeBSD は、大部分のハードウェアをファイルとして取り扱い ファイルフラグにより、`root` ユーザでさえ誤ってファイルを消去、変更してしまうことを防ぐことができます。 ファイルフラグは、man:chflags[1] を使って、簡単なインタフェースで設定できます。 -例えば、[.filename]#file1# というファイルにシステムレベルで消去不可のフラグを設定するには、以下のコマンドを実行してください。 +例えば、`file1` というファイルにシステムレベルで消去不可のフラグを設定するには、以下のコマンドを実行してください。 [source,shell] .... @@ -840,7 +855,7 @@ FreeBSD は、大部分のハードウェアをファイルとして取り扱い 他のフラグは、ファイルの所有者が変更できます。 man:chflags[1] と man:chflags[2] から、より詳細な情報を得ることをおすすめします。 -=== `setuid`, `setgid` および `sticky` 許可属性 +=== setuid, setgid および sticky 許可属性 これまでに説明した許可属性のほかに、 すべての管理者が知っておくべき特別な設定が 3 つあります。 @@ -855,14 +870,21 @@ man:chflags[1] と man:chflags[2] から、より詳細な情報を得ること しかしながら、パスワードデータベースのアップデートの際は、実効 ID の `root` ユーザの権限で実行されます。 この仕組みにより、`Permission Denied` エラーが表示されることなく、ユーザはパスワードを変更できます。 -setuid 許可属性は、以下の例で示されているように、指定する許可属性に数字の 4 をつけて設定します。 +setuid 許可属性は、以下の例で示されているように、ユーザに対して `s` の許可属性をつけることで設定できます。 + +[source,shell] +.... +# chmod u+s suidexample.sh +.... + +setuid 許可属性は、以下の例で示されているように、指定する許可属性に数字の 4 をつけることでも設定できます。 [source,shell] .... # chmod 4755 suidexample.sh .... -これで [.filename]#suidexample.sh# の許可属性は以下のように設定されます。 +これで `suidexample.sh` の許可属性は以下のように設定されます。 [.programlisting] .... @@ -908,7 +930,14 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd `setgid` 許可属性は `setuid` 許可属性と同様の機能を提供しますが、この許可属性はグループの設定を変更します。 この設定を行った上でアプリケーションまたはユーティリティを実行すると、プロセスを開始するユーザではなく、ファイルを所有するグループに対してこの許可属性を与えます。 -ファイルに `setgid` 許可属性を設定するには、man:chmod[1] で設定する許可属性の先頭に 2 をつけて実行してください。 +記号を用いてファイルに `setgid` 許可属性を設定するには、man:chmod[1] で設定するグループに `s` の許可属性をつけて実行してください。 + +[source,shell] +.... +# chmod g+s sgidexample.sh +.... + +または、man:chmod[1] で設定する許可属性の先頭に 2 をつけて実行してください。 [source,shell] .... @@ -932,8 +961,15 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd 一方 3 番目の特殊な許可属性 `sticky bit` は、システムのセキュリティを強化します。 ディレクトリに `sticky bit` を設定すると、ファイルの所有者のみがファイルを削除できるようになります。 -[.filename]#/tmp# といった共有のディレクトリにおいて、ファイルの所有者以外のユーザがファイルを削除できなくなるので有用です、 -この許可属性を有効にするには、許可属性に 1 をつけて設定してください。 +`/tmp` といった共有のディレクトリにおいて、ファイルの所有者以外のユーザがファイルを削除できなくなるので有用です。 +この許可属性を有効にするには、ファイルに対して `t` モードを追加してください。 + +[source,shell] +.... +# chmod +t /tmp +.... + +または、許可属性に 1 をつけて設定してください。 [source,shell] .... @@ -962,128 +998,121 @@ FreeBSD のディレクトリ構造は、システム全体を理解するに当 マウントポイントとは、追加するファイルシステムを接続する先の親のファイルシステム (普通はルートファイルシステム) のディレクトリのことです。 より詳細な説明は <> の節にあります。 -標準的なマウントポイントには [.filename]#/usr/#, [.filename]#/var/#, [.filename]#/tmp/#, [.filename]#/mnt/# および [.filename]#/cdrom/# があります。 -通常これらのディレクトリについては、 [.filename]#/etc/fstab# というファイル中のエントリが参照されます。 +標準的なマウントポイントには `/usr/`, `/var/`, `/tmp/`, `/mnt/` および `/cdrom/` があります。 +通常これらのディレクトリについては、`/etc/fstab` というファイル中のエントリが参照されます。 このファイルは、さまざまなファイルシステムとマウントポイントの表であり、システムが参照します。 -[.filename]#/etc/fstab# に書かれたファイルシステムは `noauto` オプションが指定されていなければ、起動時に man:rc[8] スクリプトによって自動的にマウントされます。 +`/etc/fstab` に書かれたファイルシステムは `noauto` オプションが指定されていなければ、起動時に man:rc[8] スクリプトによって自動的にマウントされます。 詳細は <> の節をご覧ください。 ファイルシステム構造を網羅した説明は 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/# +|`/etc/defaults/` |デフォルトのシステム設定ファイル; 詳細については man:rc[8] 参照 -|[.filename]#/etc/mail/# -|man:sendmail[8] のようなメール転送エージェントの設定ファイル - -|[.filename]#/etc/periodic/# +|`/etc/periodic/` |man:cron[8] 経由で毎日・毎週・毎月実行されるスクリプト; 詳細については man:periodic[8] 参照 -|[.filename]#/etc/ppp/# -|man:ppp[8] の設定ファイル +|`/lib/` +|`/bin` および `/sbin` にあるバイナリで必要とされる重要なシステムライブラリ + +|`/libexec/` +|重要なシステムファイル + +|`/media/` +|CD, USB ドライブおよびフロッピーディスクなどのリムーバブルメディアのマウントポイントとして使用されるサブディレクトリを含むディレクトリ -|[.filename]#/mnt/# +|`/mnt/` |システム管理者が一時的なマウントポイントとしてよく使う空のディレクトリ -|[.filename]#/proc/# +|`/net/` +|自動マウント NFS 共有。man:auto_master[5] を参照 + +|`/proc/` |プロセスファイルシステム; 詳細については man:procfs[5] と man:mount_procfs[8] 参照 -|[.filename]#/rescue/# +|`/rescue/` |man:rescue[8] で説明されている緊急時のために静的にリンクされているプログラム -|[.filename]#/root/# +|`/root/` |`root` アカウントのホームディレクトリ -|[.filename]#/sbin/# +|`/sbin/` |シングルユーザ環境とマルチユーザ環境の両方で重要なシステムプログラムと管理ユーティリティ -|[.filename]#/tmp/# +|`/tmp/` |システムの再起動では通常保存 _されない_ 一時的なファイル。 -メモリファイルシステムはよく [.filename]#/tmp# にマウントされます。 -これは man:rc.conf[5] の tmpmfs 関係の変数を使うか、 [.filename]#/etc/fstab# に設定項目を記入することで自動化できます。 +メモリファイルシステムはよく `/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/# +|`/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# に置かれます。 - -|[.filename]#/usr/obj/# -|[.filename]#/usr/src# ツリーのビルドで作られるアーキテクチャ依存のターゲットツリー +`/usr/local` 内では、 man:hier[7] に書かれている `/usr` のための一般構造が使われます。 +例外は man ディレクトリで、`/usr/local/share` の下ではなく `/usr/local` の下に直接置かれ、ports 関係文書は `share/doc/port` に置かれます。 -|[.filename]#/usr/ports/# +|`/usr/ports/` |FreeBSD Ports Collection (オプション)。 -|[.filename]#/usr/sbin/# +|`/usr/sbin/` |ユーザにより実行されるシステムデーモンおよびシステムユーティリティ -|[.filename]#/usr/share/# +|`/usr/share/` |アーキテクチャに依存しないファイル -|[.filename]#/usr/src/# +|`/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]] @@ -1091,7 +1120,7 @@ FreeBSD ports フレームワークのデフォルトインストール先とし ファイルを見つけるために FreeBSD が使用する構成の一番小さな単位はファイル名です。 ファイル名は、大文字と小文字を区別します。 -このことは [.filename]#readme.txt# および [.filename]#README.TXT# が異なる二つのファイルであることを意味します。 +このことは `readme.txt` および `README.TXT` が異なる二つのファイルであることを意味します。 FreeBSD はそのファイルがプログラム、または文書、あるいはその他の形式かどうかを決定するために拡張子を使用しません。 ファイルはディレクトリ内に格納されます。 @@ -1100,11 +1129,14 @@ 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 では [.filename]#c:\foo\bar\readme.txt# とは書きません。 +たとえば、FreeBSD では `c:\foo\bar\readme.txt` とは書きません。 + +[[disks-file-systems]] +=== ファイルシステム ディレクトリおよびファイルはファイルシステム内に格納されます。 どのファイルシステムも、そのファイルシステムのための _ルートディレクトリ_ とよばれる、まさに頂点の位置にちょうど一つのディレクトリを含んでいます。 @@ -1120,33 +1152,33 @@ FreeBSD システムでどんなに多くのディスクを使用しても、す このディレクトリになにが含まれているか見るために man:ls[1] コマンドを使うと、`A1` および `A2` の二つのサブディレクトリが表示されるでしょう。 ディレクトリツリーは以下のようになります。 -image::example-dir1.png[] +image::example-dir1.png[ルートディレクトリおよび 2 つのサブツリーを持つディレクトリツリー] ファイルシステムはマウント先のファイルシステム内のディレクトリにマウントしなければいけません。 それでは、`A1` ディレクトリに `B` ファイルシステムをマウントすると仮定します。 `B` のルートディレクトリは `A1` に置き換えられ、そして `B` 内のディレクトリがそれに応じて現れます。 -image::example-dir2.png[] +image::example-dir2.png[ルートディレクトリおよび 2 つのサブツリーを持つディレクトリツリー。さらに B1 および B2 サブディレクトリが A1 にぶら下がっています] -`B1` または `B2` 内にあるどんなファイルも、必要なときに [.filename]#/A1/B1# または [.filename]#/A1/B2# で到達できます。 -[.filename]#/A1# にあったすべてのファイルは一時的に隠されました。 +`B1` または `B2` 内にあるどんなファイルも、必要なときに `/A1/B1` または `/A1/B2` で到達できます。 +`/A1` にあったすべてのファイルは一時的に隠されました。 それらは `B` が `A` から _アンマウント_ されたら再び現れるでしょう。 もし `B` が `A2` にマウントされていたら、この図のようになります。 -image::example-dir3.png[] +image::example-dir3.png[ルートディレクトリおよび 2 つのサブツリーを持つディレクトリツリー。さらに B1 および B2 サブディレクトリが A2 にぶら下がっています] -そして、パスはそれぞれ [.filename]#/A2/B1# および [.filename]#/A2/B2# となるでしょう。 +そして、パスはそれぞれ `/A2/B1` および `/A2/B2` となるでしょう。 ファイルシステムは互いのファイルシステム上にもマウントできます。 上記の最後の例に続けて、`C` ファイルシステム は `B` ファイルシステム内の `B1` ディレクトリ上にマウントできます。 次の図のようになります。 -image::example-dir4.png[] +image::example-dir4.png[複雑なディレクトリツリー。さまざまなサブディレクトリがルート以下にぶら下がっています。] または `C` を `A` ファイルシステムの `A1` ディレクトリの下に直接マウントできます。 -image::example-dir5.png[] +image::example-dir5.png[複雑なディレクトリツリー。さまざまなサブディレクトリがルート以下にぶら下がっています。] 一つの大きなルートファイルシステムを用意し、他のファイルシステムを作成する必要としないことはまったくもって可能です。 この方法にはいくつかの短所と一つの利点があります。 @@ -1154,7 +1186,7 @@ image::example-dir5.png[] .マルチファイルシステムの利点 * 異なったファイルシステムは異なった _マウントオプション_ を使用できます。 たとえば、ルートファイルシステムを読みだし専用でマウントして、不注意によってユーザが重大なファイルを削除、または編集できないようにすることができます。 -また、[.filename]#/home# のようなユーザが書き込み可能なファイルシステムを他のファイルシステムと分けることによって、 _nosuid_ でマウントすることが可能になります。 +また、`/home` のようなユーザが書き込み可能なファイルシステムを他のファイルシステムと分けることによって、 _nosuid_ でマウントすることが可能になります。 このオプションは、ファイルシステムに記録されている _suid_/_guid_ の実行可能ビットを有効にしないので、安全性を高めることができるでしょう。 * FreeBSD はファイルシステムがどのように使われているかによって、自動的にファイルシステム上のファイルの配置を最適化します。 したがって、連続的に書き込まれた多くの小さなファイルが含まれているファイルシステムは、より大きく少ないファイルが含まれているファイルシステムと異なる最適化をするでしょう。 一つの大きなファイルシステムを作成すると、この最適化は成り立たなくなります。 * FreeBSD のファイルシステムはトラブルが起きても強固です。 しかしながら臨界点でのトラブルは、ファイルシステムの構造にまだ損害を与えるかもしれません。 マルチファイルシステムへデータを分割しておくことで、 必要なときにバックアップからレストアすることをより容易にして、まだシステムが回復するかもしれません。 @@ -1164,20 +1196,46 @@ image::example-dir5.png[] + [IMPORTANT] ==== -FreeBSD には、 man:growfs[8] コマンドがあります。 このコマンドは、この制限を取り除いて、 ファイルシステムのファイルを直ちに増加させることを可能にします。 +FreeBSD には、 man:growfs[8] コマンドがあります。 +このコマンドは、この制限を取り除いて、ファイルシステムのファイルを直ちに増加させることを可能にします。 +ファイルシステムは、そのファイルシステムのあるパーティションの空いている領域に対してのみ拡張できます。 +パーティションを分割した後、空いている領域があれば、man:gpart[8] を用いてパーティションを拡張できます。 +仮想ディスクの最後のパーティションであれば、ディスクを大きくすると、パーティションを拡張できます。 ==== -ファイルシステムはパーティション内に含まれています。 FreeBSD の UNIX(R) 遺産のために、 これは普段使われるパーティション (例えば MS-DOS(R) パーティション) という用語の意味とは違う意味を持っています。 それぞれのパーティションは `a` から `h` までの文字で区別されます。 それぞれのパーティションは、 一つのファイルシステムだけを含むことができます。 このことは、ファイルシステムがファイルシステムの階層上の典型的なマウントポイント、 または含まれているパーティションの文字によって記述されることを意味します。 +[[disks-partitions]] +=== ディスクパーティション + +ファイルシステムは _パーティション_ 内に含まれています。 +ディスクは 1 つのパーティションスキーム (<>) を用いてパーティションに分割されます。 +新しいスキームは 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 パーティションはある慣習と関係づけられています。 -[.informaltable] -[cols="1,1", frame="none", options="header"] +[cols="25h,~"] |=== | パーティション | 慣習 @@ -1197,35 +1255,26 @@ FreeBSD がメモリを使い果たしたときに、現在使用されていな |`d` パーティションは、 それに関連づけられた特別な意味を持っていましたが、 今は無いので、普通のパーティションとして動作するでしょう。 |=== -FreeBSD のディスクはスライスに分けられます。 -Windows(R) ではパーティションと呼ばれるもので、 -スライスには 1 から 4 までの番号がつけられます。 -これらのスライスは、ファイルシステムを含むパーティションに分けられます。 -パーティションは文字で表されます。 - -スライス番号は 1 から始まり `s` を前につけられて、デバイス名の後に続きます。 -したがって、"da0__s1__" は一番目の SCSI ドライブ上の 一番目のスライスです。 -ディスク上に存在できる物理スライスは、4 つまでですが、適切な種類の物理スライス内に論理スライスを作成できます。 -これらの拡張されたスライス番号は 5 から始まります。 -したがって、 "ada0__s5__" は、一番目の SATA ディスク上の一番目の拡張スライスです。 -これらのデバイスは、 スライスを占有することを予期するファイルシステムによって使用されます。 - -スライスや "危険な専用" の物理ドライブ、 そして他のドライブは `a` から `h` までの文字として表される _パーティション_ を含んでいます。 +スライスおよび "危険な専用" の物理ドライブ、 そして他のドライブは `a` から `h` までの文字として表される BSD パーティションを含んでいます。 この文字はデバイス名に追加されます。 したがって、 "da0__a__" は一番目の "危険な専用" `da` ドライブ上の `a` パーティションです。 "ada1s3__e__" は、 二番目の SATA ディスク上の 三番目のスライス内にある五番目のパーティションです。 最後に、システム上のそれぞれのディスクは識別されます。 ディスク名はどの種類のディスクであるかを示す記号ではじまり、どのディスクかを示す数字が続きます。 -スライスとは違いディスクの番号づけは 0 から始まります。 +パーティションやスライスとは異なり、ディスクの番号づけは 0 から始まります。 共通の記号は <> に示されます。 -パーティションを参照するときには、 ディスク名、`s`、スライス番号、 そしてパーティション文字を含めてください。 +スライスにあるパーティションを参照するときには、ディスク名、`s`、スライス番号、そしてパーティション文字を含めてください。 <> に例があります。 +GPT パーディションはディスク名、`p` そしてパーティション番号が含まれます。 -<> は、ディスク構成の概念のモデルを示します。 +<> は、MBR スライスを用いたディスク構成の概念のモデルを示します。 -FreeBSD をインストールする際には、ディスクスライスの設定し、次に FreeBSD に用いるスライス内のパーティションを作成し、それからそれぞれのパーティション内にファイルシステムまたはスワップ領域を作成し、 ファイルシステムがどこにマウントされるか決定しなければいけません。 +FreeBSD をインストールする際には、MBR を使用する場合にはディスクスライスを設定し、次に FreeBSD に用いるスライス内のパーティションを作成します。 +GPT を使用する場合には、各ファイルシステムにパーティションを設定します。 +どちらのケースでも、それぞれのパーティション内にファイルシステムまたはスワップ領域を作成し、ファイルシステムがどこにマウントされるか決定してください。 +パーティションの操作についての詳細は man:gpart[8] をご覧ください。 [[disks-naming]] .ディスクデバイス名 @@ -1283,34 +1332,34 @@ FreeBSD をインストールする際には、ディスクスライスの設定 ==== これはシステムに接続された一番目の SATA ディスクの FreeBSD から見た図を示します。 ディスクサイズは 250 GB と仮定し、80 GB のスライス (MS-DOS(R) でいうパーティション) および 170 GB のスライスがあるとします。 -一番目のスライスは Windows(R) NTFS ファイルシステム [.filename]#C:# を含んでいます。 +一番目のスライスは Windows(R) NTFS ファイルシステム `C:` を含んでいます。 そして、二番目のスライスは FreeBSD のディスクを含んでいます。 これは FreeBSD インストーラが四つのデータパーティションと一つのスワップパーティションを作成した例です。 四つのパーティションはそれぞれファイルシステムを含んでいます。 -パティション `a` はルートファイルシステム、`d` は [.filename]#/var#、`e` は [.filename]#/usr#、そして `f` は [.filename]#/usr# に使用されています。 +パティション `a` はルートファイルシステム、`d` は `/var`, `e` は `/usr`、そして `f` は `/usr` に使用されています。 パーティション `c` はスライス全体を示しており、通常のパーティションとは異なる使われ方をします。 -image::disk-layout.png[] +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, 「ネットワークファイルシステム (NFS)」] で説明されているようにネットワークファイルシステムをマウントしたり、CDROM ドライブのような別の仮想ディスクに置くという場合です。 [[disks-fstab]] -=== [.filename]#fstab# ファイル +=== fstab ファイル -[.filename]#/etc/fstab# に書かれているファイルシステムは、`noauto` オプション指定されているエントリを除いて crossref:boot[boot,起動プロセス] の途中で自動的にマウントされます。 +`/etc/fstab` に書かれているファイルシステムは、`noauto` オプション指定されているエントリを除いて crossref:boot[boot,起動プロセス] の途中で自動的にマウントされます。 このファイルは、 次のような書式で書かれたエントリを含んでいます。 [.programlisting] @@ -1334,10 +1383,11 @@ 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]] === man:mount[8] の使い方 @@ -1353,11 +1403,14 @@ man:mount[8] に渡されるファイルシステムタイプ。 FreeBSD ファ .... ==== -man:mount[8] で説明されているように、このコマンドはたくさんのオプションを提供しますが、最もよく使われるのは次のものです。 +`/etc/fstab` に記載されているファイルシステムについても、マウントポイントを指定することでマウントできます。 + +man:mount[8] で説明されているように、このコマンドはたくさんのオプションを提供します。 +最もよく使われるのは次のものです。 .マウントオプション `-a`:: -[.filename]#/etc/fstab# にある全てのファイルシステムをマウントします。 例外は "noauto" の印がついているものと、 `-t` フラグで除外されたものと、 すでにマウントされているファイルシステムです。 +`/etc/fstab` にある全てのファイルシステムをマウントします。 例外は "noauto" の印がついているものと、 `-t` フラグで除外されたものと、 すでにマウントされているファイルシステムです。 `-d`:: 実際にマウントシステムコールする以外のすべてのことをします。 このオプションは `-v` フラグと組み合わせて使い、 man:mount[8] が実際なにをしようとしているのか調べるのに便利です。 @@ -1534,48 +1587,6 @@ man:top[1] は自動的に 2 秒ごとに画面を更新します。 その代わりに `SIGHUP` シグナルを送りましょう。 デーモンごとに行動が違うので、`SIGHUP` が期待する結果となるように、そのデーモンの文書を読んで確認してください。 -[.procedure] -**** -.Procedure: プロセスにシグナルを送る - -この例では、man:inetd[8] にシグナルを送る方法を示します。 -man:inetd[8] の設定ファイルは [.filename]#/etc/inetd.conf# で、man:inetd[8] は `SIGHUP` が送信されるとこの設定ファイルを再読み込みします。 - -. man:pgrep[1] を使ってシグナルを送りたいプロセスの PID を調べます。 -この例では man:inetd[8] の PID は 198 です。 -+ -[source,shell] -.... -% pgrep -l inetd -198 inetd -.... -+ -. 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` とエラーが表示されます。 - -[NOTE] -==== -*なぜ `/bin/kill` を使うんでしょう?:* + - -多くのシェルは `kill` を組み込みコマンドとして備えています。 -つまり、[.filename]#/bin/kill# を実行するのではなく、シェルが直接シグナルを送ります。 -シェルが違うと送るシグナルの名前の指定の仕方が違うことに注意してください。 -シェルによって異なるシグナルの指定の仕方を全部覚えようとはせずに、 `/bin/kill` を直接使うほうが簡単です。 -==== -**** - -他のシグナルを送る場合は、コマンドラインの `TERM` や `KILL` を必要に応じて置き換えてください。 - [IMPORTANT] ==== システム上のランダムプロセスを終了させるのはよくありません。 @@ -1600,11 +1611,11 @@ Linux(R) ユーザであれば、`bash` を好まれるでしょう。 シェルの一般的な機能の一つに、ファイル名の補完があります。 コマンドやファイル名の最初の数文字を入力して kbd:[Tab] を押すと、シェルにコマンドやファイル名の残りの部分を補完させることができます。 -例として、 [.filename]#foobar# および [.filename]#footbar# という二つのファイルがあるとします。 -[.filename]#foobar# を削除するために `rm foo` と入力し、kbd:[Tab] を押してファイル名を補完しようとします。 +例として、`foobar` および `footbar` という二つのファイルがあるとします。 +`foobar` を削除するために `rm foo` と入力し、kbd:[Tab] を押してファイル名を補完しようとします。 しかしシェルは `rm foo` とだけ出力します。 -[.filename]#foobar# および [.filename]#football# のファイル名は、両方とも `foo` から始まるため、ファイル名の補完を完全には行なえませんでした。 +`foobar` および `football` のファイル名は、両方とも `foo` から始まるため、ファイル名の補完を完全には行なえませんでした。 一つ以上のファイル名にマッチした場合、ビープ音をらすシェルもあれば、選択できるすべてのファイル名を表示するシェルもあります。 この場合、希望するファイル名を同定するために、ユーザはさらに文字を入力する必要があります。 `t` を入力してもう一度 kbd:[Tab] を押すと、シェルはファイル名を確定でき、ファイル名の残りの部分が補完されます。 @@ -1617,7 +1628,7 @@ Linux(R) ユーザであれば、`bash` を好まれるでしょう。 [[shell-env-vars]] .一般的な環境変数 -[cols="1,1", frame="none", options="header"] +[cols="25h,~"] |=== | 変数名 | 意味 @@ -1659,7 +1670,7 @@ Linux(R) ユーザであれば、`bash` を好まれるでしょう。 環境変数を設定する方法は、シェルごとに多少異なります。 man:tcsh[1] や man:csh[1] では `setenv` を使います。 man:sh[1] や `bash` 等の Bourne シェルでは、`export` を使って現在の環境変数を設定します。 -以下の例では、`tcsh` シェルでデフォルトの `EDITOR` を [.filename]#/usr/local/bin/emacs# に設定します。 +以下の例では、`tcsh` シェルでデフォルトの `EDITOR` を `/usr/local/bin/emacs` に設定します。 [source,shell] .... @@ -1701,9 +1712,12 @@ man:sh[1] や `bash` 等の Bourne シェルでは、`export` を使って現在 % chsh -s /usr/local/bin/bash .... +プロンプトに対してパスワードを入力し、kbd:[Return] を押すと、シェルが変更されます。 +新しいシェルを使うには、一度ログオフしてから再ログインしてください。 + [NOTE] ==== -使おうと思っているシェルは__必ず__[.filename]##/etc/shells## 中に書かれていなければなりません。 +使おうと思っているシェルは__必ず__ `/etc/shells` 中に書かれていなければなりません。 シェルを crossref:ports[ports,アプリケーションのインストール - packages と ports] で説明されている FreeBSD の Ports Collection からインストールしたのであれば、自動的にこのファイルに追加されています。 もし書かれていなければ、以下のコマンドで、パスをシェルのパスに置き換えて使って追加してください。 @@ -1730,7 +1744,7 @@ UNIX(R) のシェルは単なるコマンドインタプリタではなく、ユ % ls > directory_listing.txt .... -実行すると、現在の作業ディレクトリにあるファイルの一覧が [.filename]#directory_listing.txt# に出力されます。 +実行すると、現在の作業ディレクトリにあるファイルの一覧が `directory_listing.txt` に出力されます。 man:sort[1] のようなコマンドは、入力を読み込むことができます。 先ほど得たファイルの一覧をソートするには、入力元をファイルにリダイレクトしてください。 @@ -1766,7 +1780,7 @@ UNIX(R) のパイプ記号 "|" は、コマンドの出力を他のプログラ % cat directory_listing.txt | sort | less .... -この例では、[.filename]#directory_listing.txt# の内容がソートされ、その結果が man:less[1] に渡されます。 +この例では、`directory_listing.txt` の内容がソートされ、その結果が man:less[1] に渡されます。 このコマンドを実行すると、出力がスクロールして画面から見えなくなることをさけることができて、ユーザは出力を自分のペースでスクロールできます。 [[editors]] @@ -1797,12 +1811,12 @@ package:editors/emacs[] および package:editors/vim[] といった他のエデ デバイスとはシステム上のハードウェアに関するものに対してよく使われる用語で、ディスクやプリンタ、グラフィックカードやキーボードが含まれます。 FreeBSD が起動するとき、ブートメッセージの大部分は検出されたデバイスについてのものです。 -ブートメッセージは [.filename]#/var/run/dmesg.boot# に保存されています。 +ブートメッセージは `/var/run/dmesg.boot` に保存されています。 各デバイスはデバイス名と番号を持ちます。 -例えば、[.filename]#ada0# は最初の SATA CD-ROM ドライブで、[.filename]#kbd0# はキーボードを表します。 +例えば、`ada0` は最初の SATA CD-ROM ドライブで、`kbd0` はキーボードを表します。 -FreeBSD におけるほとんどのデバイス、デバイスノードと呼ばれる [.filename]#/dev# にあるスペシャルファイルを通してアクセスしなければなりません。 +FreeBSD におけるほとんどのデバイス、デバイスノードと呼ばれる `/dev` にあるスペシャルファイルを通してアクセスしなければなりません。 [[basics-more-information]] == マニュアルページ @@ -1860,7 +1874,7 @@ man:man[1] にセクション番号を与えることで、 表示したいセ このコマンドは、"mail" というキーワードをコマンド解説に含むコマンドの一覧を表示します。 これは man:apropos[1] と同等の機能です。 -[.filename]#/usr/sbin# にあるすべてのコマンドの説明を読むには、以下のように実行してください。 +`/usr/sbin` にあるすべてのコマンドの説明を読むには、以下のように実行してください。 [source,shell] ....