- Merge the following from the English version:

r39362 -> r41037	head/ja_JP.eucJP/books/handbook/users/chapter.xml
This commit is contained in:
Ryusuke SUZUKI 2013-05-12 07:10:24 +00:00
parent a0f44093e0
commit 82774201e9
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=41605

View file

@ -3,7 +3,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: r39362
Original revision: r41037
$FreeBSD$
-->
@ -24,15 +24,9 @@
<sect1 id="users-synopsis">
<title>この章では</title>
<para>FreeBSD は、複数のユーザが同時にコンピュータを使えるようにします。
もちろん、
<para>&os; は、複数のユーザが同時にコンピュータを使えるようにします。
スクリーンとキーボードの前に一度に座れるのはその中の一人だけですが
<footnote>
<para>複数の端末を接続しない限りはですが、
それは <xref linkend="serialcomms"/>
にとっておきましょう。</para>
</footnote>
ユーザは何人でもネットワークを通してログインして作業できます。
ユーザは何人でもネットワークを通してログインできます。
システムを使うためには、
どのユーザもアカウントがなければなりません。</para>
@ -40,15 +34,11 @@
<itemizedlist>
<listitem>
<para>FreeBSD のさまざまなユーザアカウントの違い</para>
<para>&os; のさまざまなユーザアカウントの違い</para>
</listitem>
<listitem>
<para>ユーザアカウントの追加方法</para>
</listitem>
<listitem>
<para>ユーザアカウントの削除方法</para>
<para>ユーザアカウントを追加したり削除する方法</para>
</listitem>
<listitem>
@ -69,7 +59,7 @@
<itemizedlist>
<listitem>
<para>&unix; FreeBSD の基礎知識 (<xref linkend="basics"/>)
<para><link linkend="basics">&unix;&os; の基礎知識</link>
を理解しておいてください。</para>
</listitem>
</itemizedlist>
@ -78,14 +68,13 @@
<sect1 id="users-introduction">
<title>はじめに</title>
<para>
システムへアクセスするには、かならずユーザアカウントが使われます。
また、プロセスもすべてユーザによって実行されますので、
ユーザとアカウントの管理は FreeBSD
システムにおいて欠かすことのできない重要なものです。
<para>&os; システムへアクセスするには、
かならずアカウントが使われ、
また、プロセスもすべてユーザによって実行されるので、
ユーザとアカウントの管理は、重要なものです。
</para>
<para>FreeBSD 上のどのアカウントにも、
<para>&os; システム上のどのアカウントにも、
そのアカウントを識別するための情報がなにかしら結び付けられています。</para>
<variablelist>
@ -95,10 +84,11 @@
<listitem>
<para><prompt>login:</prompt>
プロンプトに対して入力するユーザの名前です。
ユーザ名はそのコンピュータ内で一意でなければならず、
ユーザ名はそのシステムで一意でなければならず、
2 名のユーザに同じユーザ名をつけることはできません。
有効なユーザ名を作成するには &man.passwd.5;
に記載されているいくつもの規則があります。
アプリケーションの上位互換性を保つために、
8 文字以下の小文字からなるユーザ名が一般的です。</para>
</listitem>
</varlistentry>
@ -108,41 +98,44 @@
<listitem>
<para>それぞれのアカウントにはパスワードがあります。
パスワードは空白にもでき、
その場合はシステムにアクセスするのにパスワードは不要です。
これは通常はとても悪い考えです。
パスワードは空白にもできますが、
行うべきではありません。
すべてのアカウントにはパスワードをつけるべきです。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ユーザ ID (UID)</term>
<term>ユーザ ID (<acronym>UID</acronym>)</term>
<listitem>
<para>UID は、システムがユーザを一意に識別するための、
伝統的には 0 から 65535<footnote id="users-largeuidgid">
<para>UID や GID には 4294967295 までの数を使えますが、
<para>ユーザ ID (<acronym>UID</acronym>) は、
システムがユーザを一意に識別するための、
伝統的には 0 から 65535<footnote
id="users-largeuidgid">
<para><acronym>UID</acronym><acronym>GID</acronym>
には 4294967295 までの数を使えますが、
そのような ID は、ID
の値に対して仮定を置いているソフトウェアで問題を起こす可能性があります。</para>
</footnote>の間の数値です。内部的には、FreeBSD はユーザの識別に UID
を使っています。ユーザ名を指定できる FreeBSD のコマンドは、
どれもユーザ名を UID に変換してから扱っています。
これは、同じ UID
</footnote>の間の数値です。内部的には、&os; はユーザの識別に
<acronym>UID</acronym> を使っています。
ユーザ名を指定できるコマンドは、
ユーザ名を <acronym>UID</acronym> に変換してから扱っています。
好ましくありませんが、同じ <acronym>UID</acronym>
を持つ異なるユーザ名のアカウントがいくつあってもよいということになります。
FreeBSD に限っていうと、
これらのアカウントはひとりのユーザとして扱われます。
そうする必要があるとは思えませんが。</para>
&os; に限っていうと、
これらのアカウントはひとりのユーザとして扱われます。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>グループ ID (GID)</term>
<term>グループ ID (<acronym>GID</acronym>)</term>
<listitem>
<para>GID は、ユーザが属する第一グループを一意に識別するための、
<para>グループ ID (<acronym>GID</acronym>) は、
ユーザが属する第一グループを一意に識別するための、
伝統的には 0 から 65535<footnoteref linkend="users-largeuidgid"/>
の間の数値です。グループは、UID ではなく、
ユーザの GID に基づいて資源へのアクセスを制御する仕組みです。
の間の数値です。グループは、<acronym>UID</acronym> ではなく、
ユーザの <acronym>GID</acronym> に基づいて資源へのアクセスを制御する仕組みです。
これは、ある種の設定ファイルのサイズを大幅に小さくします。
ユーザは、複数のグループに所属できます。</para>
</listitem>
@ -162,7 +155,7 @@
<term>パスワード変更時間</term>
<listitem>
<para>デフォルトでは、FreeBSD
<para>デフォルトでは、&os;
は定期的にパスワードを変更することをユーザに強制しません。
これをユーザごとに設定して、一部またはすべてのユーザに、
一定の時間がたったらパスワードを強制的に変更させることができます。</para>
@ -173,7 +166,7 @@
<term>アカウント失効時間</term>
<listitem>
<para>デフォルトでは、FreeBSD はアカウントを失効させません。
<para>デフォルトでは、&os; はアカウントを失効させません。
たとえば学校で生徒のアカウントがある場合など、
限られた期間だけのアカウントを作成するなら、
そのアカウントがいつ失効するか指定できます。
@ -187,7 +180,7 @@
<term>ユーザの氏名</term>
<listitem>
<para>FreeBSD ではユーザ名でアカウントを一意に識別しますが、
<para>&os; ではユーザ名でアカウントを一意に識別しますが、
必ずしもユーザの本名を反映したものではありません。
この情報をアカウントに関連付けることもできます。</para>
</listitem>
@ -197,16 +190,15 @@
<term>ホームディレクトリ</term>
<listitem>
<para>ホームディレクトリは、
ユーザがログインした時に作業を開始する、
システム中のディレクトリへのフルパスです。
一般的な慣習は、すべてのユーザのホームディレクトリを
<filename>/home/<replaceable>username</replaceable></filename>
<filename>/usr/home/<replaceable>username</replaceable></filename>
<para>ホームディレクトリは、システム中のディレクトリへのフルパスです。
これはユーザがログインした時に作業を開始するディレクトリです。
一般的な慣習は、すべてのユーザのホームディレクトリを <filename
class="directory">/home/<replaceable>username</replaceable></filename>
<filename
class="directory">/usr/home/<replaceable>username</replaceable></filename>
の下に置くことです。
ユーザは、個人のファイルをホームディレクトリや
その下に作成するディレクトリに保存します。</para>
各ユーザは、個人のファイルやサブディレクトリを
ユーザのホームディレクトリに保存します。</para>
</listitem>
</varlistentry>
@ -225,18 +217,16 @@
<para>
アカウントには大きく分けて三種類のものがあります。それは、
<link linkend="users-superuser">スーパーユーザ (Superuser)</link>
<link linkend="users-system">システムユーザ (system users)</link>
<link linkend="users-superuser">スーパーユーザ (superuser)</link>
<link linkend="users-system">システムアカウント (system accounts)</link>
そして<link linkend="users-user">ユーザアカウント (user accounts)</link> です。
スーパーユーザのアカウントは通常 <username>root</username> と呼ばれ、
無制限の特権を持つためにシステムの管理に用いられます。
また、システムユーザはサービスの運用に用いられ、
最後のユーザアカウントは、
実際にログインしてメールを読むといった作業を行なう利用者のためのものです。
</para>
</sect1>
また、システムアカウントはサービスの運用に用いられ、
ユーザアカウントは、
実際のユーザに割り当てられ、ログインしてシステムを利用するために使われます。</para>
<sect1 id="users-superuser">
<sect2 id="users-superuser">
<title>スーパーユーザアカウント</title>
<indexterm>
@ -245,52 +235,45 @@
</indexterm>
<para>スーパーユーザアカウントは通常
<username>root</username> と呼ばれ、
システム管理を行なうために最初から設定済みです。
システム管理を行なうために使われます。
このアカウントはメールのやりとり、システムの調査、
プログラミングといった日常的な作業を行なうために使われるべきものではありません。
</para>
プログラミングといった日常的な作業を行なうために使われるべきものではありません。</para>
<para>
その理由は、スーパーユーザが通常のユーザアカウントと異なり、
<para>その理由は、スーパーユーザが通常のユーザアカウントと異なり、
操作にまったく制限を受けないことによります。
そのためスーパーユーザアカウントで操作を間違えると、
システムに重大な影響を与えてしまう恐れがあるのです。
ユーザアカウントでは、仮に操作を間違えてもシステムを壊してしまうようなことは
できないようになっています。したがって特権を必要としていないのであれば、
できるだけいつもユーザアカウントを利用する方が望ましいと言えるでしょう。
</para>
ユーザアカウントでは、
仮に操作を間違えてもシステムを壊してしまうようなことはできないようになっています。
したがって特権を必要としていないのであれば、
できるだけいつもユーザアカウントを利用する方が望ましいと言えるでしょう。</para>
<para>スーパーユーザで実行するコマンドはいつでも、
二回、三回と確認してください。
なぜならスペースが多かったり、文字が欠けていたりするだけで、
取り返しのつかないデータの破壊につながる可能性があるからです。</para>
<para>
ですから、この章を読んでからあなたが最初にすべきなのは、
もし用意していないなら、日常的に利用するための
あなた自身のユーザアカウントを作成することです。
<para>常にシステム管理者用にユーザアカウントを作成し、
一般的な使用においては、そのアカウントを使ってください。
これはマルチユーザモード、シングルユーザモードを問わず、
同様にあてはまります。
この章のうしろの方では、アカウントの追加と通常のユーザから
スーパーユーザへと移行する手順について扱います。
</para>
</sect1>
スーパーユーザへと移行する手順について扱います。</para>
</sect2>
<sect1 id="users-system">
<sect2 id="users-system">
<title>システムアカウント</title>
<indexterm>
<primary>アカウント</primary>
<secondary>システム</secondary>
</indexterm>
<para>
システムユーザとは、DNS、メール、
<para>システムアカウントとは、DNS、メール、
ウェブサーバといった各種サービスを運用するために使われます。
この目的は、セキュリティを確保するためです。
もしサービスがスーパーユーザで実行されていると、
それらのサービスは (本来意図しないような)
どんな動作でも可能となり、適切な制限を適用することができません。
</para>
どんな動作でも可能となり、適切な制限を適用することができません。</para>
<indexterm>
<primary>アカウント</primary>
@ -300,56 +283,47 @@
<primary>アカウント</primary>
<secondary><username>operator</username></secondary>
</indexterm>
<para>
システムユーザの具体例として、
<username>daemon</username>,
<username>operator</username>,
<username>bind</username> (DNS; Domain Name Service 用),
<username>news</username> および <username>www</username>
といったものがあります。
またシステム管理者はよく、
インストールしたウェブサーバを運用するために
<username>httpd</username>
というユーザを作成しています。
</para>
<para>システムアカウントの具体例として、
<username>daemon</username>, <username>operator</username>,
<username>bind</username>, <username>news</username> および
<username>www</username>
といったものがあります。</para>
<indexterm>
<primary>アカウント</primary>
<secondary><username>nobody</username></secondary>
</indexterm>
<para>
<username>nobody</username>
<para><username>nobody</username>
ユーザは通常の特権を持たないシステムユーザです。
しかし、<username>nobody</username>
を利用するサービスが増えれば増えるほど、
それに所属するファイルやプロセスも増え、
その特権も大きくなるということを忘れないようにしてください。</para>
</sect1>
</sect2>
<sect1 id="users-user">
<sect2 id="users-user">
<title>ユーザアカウント</title>
<indexterm>
<primary>アカウント</primary>
<secondary>user</secondary>
</indexterm>
<para>
ユーザアカウントは、
<para>ユーザアカウントは、
主に現実のユーザがシステムにアクセスする手段として用いられるものです。
このアカウントは利用するユーザとシステム環境を分離します。
そのため、システムや他のユーザに危害をおよぼす危険性をなくし、また、
他に影響を与えることなくユーザ自身の環境をカスタマイズすることを可能にしています。
</para>
他に影響を与えることなくユーザ自身の環境をカスタマイズすることを可能にしています。</para>
<para>システムにアクセスするすべてのユーザは、
それぞれ唯一のユーザアカウントを持つべきです。
こうすることで誰が何を行なっているかがわかりますし、
こうすることで管理者は誰が何を行なっているかがわかりますし、
他の人の設定を壊してしまったり、
他人のメールを読んでしまうようなことを避けることができます。</para>
<para>それぞれのユーザは快適にシステムを利用するため、
シェル、エディタ、キー設定、言語など、
各自の環境をセットアップすることができます。</para>
</sect2>
</sect1>
<sect1 id="users-modifying">
@ -360,8 +334,8 @@
<secondary>変更</secondary>
</indexterm>
<para>&unix; 環境では、
ユーザアカウントを操作するのにさまざまなコマンドが使えます。
<para>&os; には、
ユーザアカウントを操作するのにさまざまなコマンドが用意されています。
もっとも一般的なコマンドを以下に示し、
それに続いて詳しい使用例を示します。</para>
@ -381,18 +355,22 @@
<entry>&man.adduser.8;</entry>
<entry>コマンドラインからユーザを追加するための推奨アプリケーション</entry>
</row>
<row>
<entry>&man.rmuser.8;</entry>
<entry>コマンドラインからユーザを削除するための推奨アプリケーション</entry>
</row>
<row>
<entry>&man.chpass.1;</entry>
<entry>ユーザデータベースの情報を変更するための柔軟なツール</entry>
</row>
<row>
<entry>&man.passwd.1;</entry>
<entry>ユーザのパスワードを変更する簡単なコマンドラインツール</entry>
</row>
<row>
<entry>&man.pw.8;</entry>
<entry>ユーザアカウントのあらゆる箇所を変更する強力で柔軟なツール</entry>
@ -412,20 +390,20 @@
<primary><command>adduser</command></primary>
</indexterm>
<indexterm>
<primary><filename class="directory">/usr/share/skel</filename></primary>
<primary><filename
class="directory">/usr/share/skel</filename></primary>
</indexterm>
<indexterm><primary>スケルトンディレクトリ</primary></indexterm>
<para>&man.adduser.8; は、
新しいユーザを登録するためのシンプルなプログラムです。
このプログラムは、システムの <filename>passwd</filename>
<filename>group</filename> ファイルに新しい項目を作成します。
ユーザを追加すると、
このプログラムは、<filename>/etc/passwd</filename>
<filename>/etc/group</filename> を自動的に更新します。
また、新規ユーザのホームディレクトリを作成し、
<filename>/usr/share/skel</filename>
から、デフォルトで使用される設定ファイル
(<quote>ドットファイル</quote>)
をコピーします。また、新しく作成されたユーザに対して、
ウェルカムメッセージをメールで送信することも可能です。
</para>
<filename class="directory">/usr/share/skel</filename>
から、デフォルトで使用される設定ファイルをコピーします。
また、新しく作成されたユーザに対して、
ウェルカムメッセージをメールで送信することも可能です。</para>
<example>
<title>&os; におけるユーザの追加</title>
@ -463,8 +441,8 @@ Goodbye!
</example>
<note>
<para>入力したパスワードは画面に表示されません
アスタリスク記号も表示されませんので
<para>入力したパスワードは画面に表示されませんので、
ユーザアカウントを作成する際には
パスワードを間違えて入力してしまわないように注意してください。</para>
</note>
</sect2>
@ -478,14 +456,14 @@ Goodbye!
<secondary>削除</secondary>
</indexterm>
<para>&man.rmuser.8; を使えば
システムから完全にユーザを削除できます。
&man.rmuser.8; は、次の手順を実行します。</para>
<para>システムから完全にユーザを削除するには
&man.rmuser.8; を使います。
このコマンドは、次の手順を実行します。</para>
<procedure>
<step>
<para>指定されたユーザの &man.crontab.1; エントリを削除
(存在する場合)</para>
<para>指定されたユーザの &man.crontab.1;
エントリが存在する場合には削除</para>
</step>
<step>
@ -507,12 +485,12 @@ Goodbye!
</step>
<step>
<para><filename>/var/mail</filename>
<para><filename class="directory">/var/mail</filename>
から、指定されたユーザの到着メールファイルを削除。</para>
</step>
<step>
<para><filename>/tmp</filename>
<para><filename class="directory">/tmp</filename>
のような一時ファイル保存領域から、
指定されたユーザの所有するファイルを削除。</para>
</step>
@ -523,8 +501,7 @@ Goodbye!
すべてのグループから、指定されたユーザを削除します。</para>
<note>
<para>
指定されたユーザと同じ名前のグループで、
<para>指定されたユーザと同じ名前のグループで、
そのユーザが削除されると空のグループとなる場合は、
そのグループ自体が削除されます。
これは &man.adduser.8; によってユーザごとに作成される、
@ -536,12 +513,9 @@ Goodbye!
<para>スーパユーザアカウントの削除に
&man.rmuser.8; を利用することはできません。
スーパユーザアカウントの削除はほとんどすべての場合、
大規模なシステムの破壊を意味するからです。
</para>
大規模なシステムの破壊を意味するからです。</para>
<para>デフォルトでは、
どういう操作を行なっているか確認できる対話モードが使われます。
</para>
<para>デフォルトでは、以下の例のような対話モードが使われます。</para>
<example>
<title><command>rmuser</command> による対話的なアカウントの削除</title>
@ -565,12 +539,11 @@ Removing files belonging to jru from /var/tmp/vi.recover: done.
<title><command>chpass</command></title>
<indexterm><primary><command>chpass</command></primary></indexterm>
<para>&man.chpass.1;
<para>&man.chpass.1; を用いて
パスワード、シェル、その他の個人情報といった、
ユーザデータベース情報を変更します。
</para>
ユーザデータベース情報を変更できます。</para>
<para>システム管理者に限りスーパユーザ権限で
<para>スーパユーザ権限に限り、
&man.chpass.1; を用い、
他のユーザの情報やパスワードを変更できます。</para>
@ -604,8 +577,8 @@ Home Phone:
Other information:</screen>
</example>
<para>通常のユーザは、この情報の限られた部分のみ変更が可能です。
また、変更できるのはそのユーザ自身の情報のみです。
<para>ユーザは、この情報の限られた部分のみ変更が可能です。
また、変更できるのはそのユーザ自身のアカウント情報のみです。
</para>
<example>
@ -621,14 +594,13 @@ Other information:</screen>
</example>
<note>
<para>&man.chfn.1;, &man.chsh.1; はいずれも、単に &man.chpass.1;
へのハードリンクになっています。
<para>&man.chfn.1; および &man.chsh.1; はいずれも、 &man.chpass.1;
へのリンクです。
また、&man.ypchpass.1;, &man.ypchfn.1; および &man.ypchsh.1; も同様です。
NIS のサポートは自動的に行なわれますので、
<acronym>NIS</acronym> のサポートは自動的に行なわれますので、
コマンドの先頭に <literal>yp</literal>
をつける必要はありません。
もし、混乱しても心配しないでください。
NIS については、<xref linkend="advanced-networking"/>
NIS の設定については、
<!-- <xref linkend="network-servers"/> (cf. rev.1.48) -->
で説明されています。</para>
</note>
@ -645,13 +617,14 @@ Other information:</screen>
<para>&man.passwd.1; は、
ユーザが自分のパスワードを変更する通常の方法です。
スーパユーザ権限では、
他のユーザのパスワードを変更するのに使われます。
</para>
他のユーザのパスワードを変更するのに使われます。</para>
<note>
<para>誤って、または不正なパスワードの変更を避けるため、
新しいパスワードを設定する前に、
もとのパスワードを入力しなければなりません。</para>
もとのパスワードを入力しなければなりません。
スーパーユーザの権限でユーザのパスワードを変更する際には、
もとのパスワードを入力する必要はありません。</para>
</note>
<example>
@ -678,14 +651,15 @@ passwd: done</screen>
</example>
<note>
<para>&man.chpass.1; 同様、&man.yppasswd.1; は、単に
&man.passwd.1; へのハードリンクになっていますので、
<para>&man.chpass.1; 同様、&man.yppasswd.1; は、
&man.passwd.1; へのリンクになっていますので、
NIS はどちらのコマンドでも動作します。</para>
</note>
</sect2>
<sect2 id="users-pw">
<title><command>pw</command></title>
<indexterm><primary><command>pw</command></primary></indexterm>
<para>&man.pw.8; は、ユーザやグループの作成、削除、
@ -694,7 +668,7 @@ passwd: done</screen>
フロントエンドとして働きます。&man.pw.8;
はとても強力な一連のコマンドラインオプションを有しており、
シェルスクリプトで使うのに向いていますが、新しいユーザは、
で紹介されている他のコマンドに比べて難しいと感じるかもしれません。</para>
の章で紹介されている他のコマンドに比べて難しいと感じるかもしれません。</para>
</sect2>
</sect1>
@ -707,12 +681,10 @@ passwd: done</screen>
<primary>アカウント</primary>
<secondary>制限</secondary>
</indexterm>
<para>ユーザがいるなら、
彼らに対してシステムの利用を制限できないか考えたことがあるのではないでしょうか。
FreeBSD は、
<para>&os; は、
個々のユーザが利用できるシステム資源の量を管理者が制限できる方法をいくつも用意しています。
その種の制限は、ディスククォータ (quota) とその他の資源の制限の
とその他のリソースの制限の 2 つに分けられます。</para>
その種の制限は、ディスククォータ (quota)
とその他の資源の制限の 2 つの章で説明します。</para>
<indexterm><primary>クォータ (quotas)</primary></indexterm>
<indexterm>
@ -720,9 +692,9 @@ passwd: done</screen>
<secondary>クォータ</secondary>
</indexterm>
<indexterm><primary>ディスククォータ</primary></indexterm>
<para>ディスククォータは、ユーザのディスクの利用を制限し、
その都度計算しなくてもユーザのディスク使用量を簡単に確認できる手段も提供しています。
クォータについては、<xref linkend="quotas"/> で解説しています。</para>
<para>ディスククォータは、ユーザが利用できるディスク容量を制限し、
その都度計算しなくてもディスク使用量を簡単に確認できる手段も提供しています。
クォータについては、<link linkend="quotas"></link> で解説しています。</para>
<para>その他のリソースの制限とは、ユーザが消費できる
CPU、メモリなどのリソースを制限する手段のことです。
@ -733,27 +705,27 @@ passwd: done</screen>
<primary><filename>/etc/login.conf</filename></primary>
</indexterm>
<para>ログインクラスは <filename>/etc/login.conf</filename>
で定義します。詳細な働きの説明はこの節の範囲を超えますが、
&man.login.conf.5; のマニュアルに詳しく記載されています。
各ユーザにはログインクラスが割り当てられていて
で定義します。詳細な説明は
&man.login.conf.5; に詳しく記載されています。
各ユーザアカウントにはログインクラスが割り当てられていて
(デフォルトでは <literal>default</literal> です)、
それぞれのログインクラスにはログインケーパビリティの集合が割り当てられているといえば十分でしょう
それぞれのログインクラスにはログインケーパビリティの集合が割り当てられています
ログインケーパビリティとは、
<literal><replaceable>名称</replaceable>=<replaceable></replaceable></literal>
の組のことで、<replaceable>名称</replaceable>
は周知の識別子、<replaceable></replaceable>
は、名称に応じて処理される任意の文字列です。
は、<replaceable>名称</replaceable> に応じて処理される任意の文字列です。
ログインクラスとケーパビリティを設定するのはどちらかといえば簡単なことで、
&man.login.conf.5; でも説明されています。</para>
<note>
<para>システムは普通は、直接 <filename>/etc/login.conf</filename>
ファイルから設定を読み込まず、
より速く検索できるデータベースファイル
<para>&os; は通常、直接 <filename>/etc/login.conf</filename>
から設定を読み込まず、
より速く検索できる
<filename>/etc/login.conf.db</filename>
から読み込みます。<filename>/etc/login.conf</filename>
から <filename>/etc/login.conf.db</filename> を生成するには、
次のコマンドを実行してください</para>
データベースから読み込みます。<filename>/etc/login.conf</filename>
を編集する時には <filename>/etc/login.conf.db</filename>
を次のコマンドを実行してアップデートする必要があります</para>
<screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
</note>
@ -764,18 +736,16 @@ passwd: done</screen>
リミットとハードリミットがあります。
ソフトリミットは、ユーザやアプリケーションが調整できますが、
ハードリミットを超えることはできません。
ユーザはハードリミットを下げることはできますが、上げることはできません。
ユーザはハードリミットを下げることはできますが、
上げることはスーパユーザのみができます。
第二に、ほとんどのリソースの制限は特定のユーザに対してプロセス毎に適用されるもので、
そのユーザが利用するリソースの総量を制限するものではありません。
ただし、この違いは制限を特別扱いすることで実現されるものであり、
ログインケーパビリティフレームワークの実装によるものではありません
(つまり、リソースの制限は、
<emphasis>実際には</emphasis>ログインケーパビリティの特別な場合ではないのです)。</para>
ログインケーパビリティフレームワークの実装によるものではありません。</para>
<para>難しい話はこのくらいにしておいて、
以下が最もよく使われるリソースの制限になります
(残りは、他のすべてのログインケーパビリティと並んで
&man.login.conf.5; に書かれています)。</para>
<para>以下が最もよく使われるリソースの制限になります。
残りは、他のすべてのログインケーパビリティと並んで
&man.login.conf.5; に書かれています。</para>
<variablelist>
<varlistentry>
@ -783,19 +753,17 @@ passwd: done</screen>
<listitem>
<indexterm><primary>coredumpsize</primary></indexterm>
<indexterm>
<primary>ユーザに対する制限</primary>
<indexterm><primary>ユーザに対する制限</primary>
<secondary>coredumpsize</secondary>
</indexterm>
<para>プログラムが生成する core
ファイルのサイズにかかる制限は、
自明な理由でほかのディスク使用に関する制限に従属します
(例: <literal>filesize</literal> やディスククォータ)。それでも、
ディスク領域の消費を制御するあまり厳しくない手段としてよく使われています。
<literal>filesize</literal> やディスククォータなどの、
ほかのディスク使用に関する制限に従属します。
この制限は、ディスク領域の消費を制御するあまり厳しくない手段としてよく使われています。
ユーザは core ファイルを自分で生成するわけではなく、
削除しないことも多いので、これを設定すれば大きなプログラム
(たとえば <application>Emacs</application>)
が異常終了してもディスクの空きがなくならずに済みます。</para>
削除しないことも多いので、
これを設定すれば大きなプログラムが異常終了してもディスクの空きがなくならずに済みます。</para>
</listitem>
</varlistentry>
@ -814,13 +782,8 @@ passwd: done</screen>
<note>
<para>これは、消費される CPU <emphasis>時間</emphasis>
についての制限であって、&man.top.1;&man.ps.1;
の項目のどれかに表示される
CPU の割合に関するものではありません。
これを書いている時点では後者の制限はかけられませんし、
役にたたないでしょう。たとえば
(正当なタスクである可能性が高い)
コンパイラはたやすく一定時間
CPU を 100% 近く使ってしまいます。</para>
のフィールドで表示される
CPU の割合に関するものではありません。</para>
</note>
</listitem>
</varlistentry>
@ -851,18 +814,16 @@ passwd: done</screen>
<secondary>maxproc</secondary>
</indexterm>
<para>ユーザが実行できるプロセス数の上限です。
フォアグラウンドプロセスとバックグラウンドプロセスの両方を平等に扱います。
自明な理由から&man.sysctl.8; 変数
フォアグラウンドプロセスとバックグラウンドプロセスの両方を扱います。
この上限は&man.sysctl.8; 変数
<varname>kern.maxproc</varname>
で指定されたシステムの制限を超えることはできません。
また、同時に複数ログインすることや、
同時に複数ログインすることや、
パイプライン実行することは便利なことが多いので、
この値をあまり小さな値に設定すると、
そのユーザの生産性が悪化することにも注意してください
そのユーザの生産性が悪化する可能性があります
大きなプログラムをコンパイルする場合のように、
タスクによっては複数のプロセスが実行されます (たとえば
&man.make.1;, &man.cc.1;
や、その他仲立ちとなるプリプロセッサ)。</para>
タスクによっては複数のプロセスやプリプロセッサが実行されます。</para>
</listitem>
</varlistentry>
@ -875,12 +836,11 @@ passwd: done</screen>
<primary>ユーザに対する制限</primary>
<secondary>memorylocked</secondary>
</indexterm>
<para>これは、
1 つのプロセスがメインメモリにロックされることを要求できるメモリの最大容量です
(&man.mlock.2; をご覧ください)。&man.amd.8;
のようなシステムで重要なプログラムは、
メインメモリへロックして、スワップアウトイベントにおいて、
問題発生時にシステムのスラッシングを引き起こさないようにします。</para>
<para>これは、1 つのプロセスが &man.mlock.2;
によりメインメモリにロックされることを要求できるメモリの最大容量です
&man.amd.8; のようなシステムで重要なプログラムは、
メインメモリへロックして、システムがスワップする際に、
ディスクのスラッシングを引き起こさないようにします。</para>
</listitem>
</varlistentry>
@ -889,8 +849,7 @@ passwd: done</screen>
<listitem>
<indexterm><primary>memoryuse</primary></indexterm>
<indexterm>
<primary>ユーザに対する制限</primary>
<indexterm><primary>ユーザに対する制限</primary>
<secondary>memoryuse</secondary>
</indexterm>
<para>これは、どの時点かを問わず、
@ -906,16 +865,15 @@ passwd: done</screen>
<listitem>
<indexterm><primary>openfiles</primary></indexterm>
<indexterm>
<primary>ユーザに対する制限</primary>
<indexterm><primary>ユーザに対する制限</primary>
<secondary>openfiles</secondary>
</indexterm>
<para>これは、あるプロセスが開いておける最大のファイル数です。
FreeBSD では、ファイルはまた、ソケットや
&os; では、ファイルはまた、ソケットや
IPC チャンネルを表わすのにも使われています。
ですから、あまり低い値に設定しないよう注意してください。
これに対応するシステム全体の制限は
&man.sysctl.8; 変数
&man.sysctl.8;
<varname>kern.maxfiles</varname> で定義されています。</para>
</listitem>
</varlistentry>
@ -925,14 +883,12 @@ passwd: done</screen>
<listitem>
<indexterm><primary>sbsize</primary></indexterm>
<indexterm>
<primary>ユーザに対する制限</primary>
<indexterm><primary>ユーザに対する制限</primary>
<secondary>sbsize</secondary>
</indexterm>
<para>これは、あるユーザが消費できるネットワークメモリ
(つまり mbuf) の上限の量です。これは、
大量のソケットを生成する古いサービス拒否攻撃に対応するものとして作られましたが、
一般的にはネットワーク通信を制限するのに使えます。</para>
(つまり mbuf) の上限の量です。ユーザは、
ネットワーク通信を制限するのに使えます。</para>
</listitem>
</varlistentry>
@ -941,8 +897,7 @@ passwd: done</screen>
<listitem>
<indexterm><primary>stacksize</primary></indexterm>
<indexterm>
<primary>ユーザに対する制限</primary>
<indexterm><primary>ユーザに対する制限</primary>
<secondary>stacksize</secondary>
</indexterm>
<para>これは、プロセスのスタックサイズの上限です。
@ -968,26 +923,26 @@ passwd: done</screen>
<para>システムに付属していた
<filename>/etc/login.conf</filename>
はほとんどの制限について妥当な値になっていますが、
あなたのシステムに何がふさわしいか分かるのは、
管理者であるあなただけです。
すべてのシステムにおいてふさわしいというわけではありません。
制限をあまり緩くするとシステムを悪用しやすくしてしまいますし、
厳しくしすぎると生産性を悪化させてしまいます。</para>
</listitem>
<listitem>
<para>X Window System (X11) のユーザには、
<para><application>&xorg;</application> のユーザには、
他のユーザより多くのリソースを与えるべきかもしれません。
X11 そのものが多くのリソースを使うだけでなく、
<application>&xorg;</application>
そのものが多くのリソースを使うだけでなく、
より多くのプログラムを並行して使うことをユーザに促します。</para>
</listitem>
<listitem>
<para>多くの制限は個々のプロセスにかかるもので、
一人のユーザにまとめてかかるものではないことを忘れないでください
一人のユーザにまとめてかかるものではありません
例えば、<varname>openfiles</varname> を 50 に設定することは、
ユーザが動かすそれぞれのプロセスが最大
50 個のファイルを開けるということです。
したがって、あるユーザが開けられるファイルの総数は、
あるユーザが開けるファイルの総数は、
<literal>openfiles</literal> の値に <literal>maxproc</literal>
をかけたものになります。
同じことがメモリ消費量にもあてはまります。</para>
@ -996,8 +951,7 @@ passwd: done</screen>
<para>リソースの制限と、ログインクラス、
ログインケーパビリティ一般についての詳しい情報は、
それぞれのマニュアルページ、
&man.cap.mkdb.1;, &man.getrlimit.2;, &man.login.conf.5;
&man.cap.mkdb.1;, &man.getrlimit.2; および &man.login.conf.5;
をご覧ください。</para>
</sect1>
@ -1012,31 +966,30 @@ passwd: done</screen>
<primary>アカウント</primary>
<secondary>グループ</secondary>
</indexterm>
<para>グループとは、単にユーザを羅列したものです。
グループは、グループ名と GID (グループ ID) で識別されます。
FreeBSD (と他の &unix; システムのほとんど) では、
あるプロセスが何かするのを許可するかどうかをカーネルが判断する際に利用する
2 つの因子は、ユーザ ID とそのユーザが所属するグループの一覧です。
ユーザ ID と異なり、プロセスはそのプロセスに関係付けられたグループの一覧を持ちます。
どこかで <quote>グループ ID</quote> に触れているのを聞くことがあるでしょうが、
ほとんどの場合は、これは単に一覧の最初のグループを指しています。</para>
<para>グループとは、ユーザを羅列したものです。
グループは、グループ名と <acronym>GID</acronym> で識別されます。
&os; では、
あるプロセスが何かするのを許可するかどうかをカーネルが判断する際に
プロセスの <acronym>UID</acronym>
とそのユーザが所属するグループの一覧を利用します。
ほとんどの場合、ユーザもしくはプロセスの <acronym>GID</acronym>
一覧の最初のグループを指しています。</para>
<para>グループ名からグループ ID への写像は
<para>グループ名から <acronym>GID</acronym> への写像は
<filename>/etc/group</filename> にあります。
これは、コロンで区切られた 4 項目からなるテキストファイルです。
1 番目の項目はグループ名、
2 番目は暗号化されたパスワード、
3 番目がグループ ID
3 番目が <acronym>GID</acronym>
4 番目がカンマで区切られたメンバの一覧です。
これは手で編集して問題ありません
(もちろん、文法をまったく間違えない限りはですが)。
文法についての完全な説明は、&man.group.5; をご覧ください。</para>
<para><filename>/etc/group</filename> を手で編集したくなければ、
&man.pw.8; コマンドを使ってグループの追加や編集をできます。
<para>スーパーユーザは、<filename>/etc/group</filename>
をテキストエディタで編集できます。
もしくは、&man.pw.8; を使ってグループの追加や編集をできます。
たとえば、<groupname>teamtwo</groupname>
というグループを追加して、その存在を確認するには、
次のように使えばできます。</para>
次のように使ます。</para>
<example>
<title>&man.pw.8; によるグループの追加</title>
@ -1046,32 +999,31 @@ passwd: done</screen>
teamtwo:*:1100:</screen>
</example>
<para>上記の <literal>1100</literal> という番号は、
<groupname>teamtwo</groupname> グループのグループ ID です。
<para>この例では、<literal>1100</literal> という番号は、
<groupname>teamtwo</groupname> <acronym>GID</acronym> です。
この時点では、<groupname>teamtwo</groupname>
にはメンバがおらず、あまり意味がありません。
にメンバはいません。
以下のコマンドは、
<username>jru</username><groupname>teamtwo</groupname>
に参加させて、この状況を変えましょう</para>
のメンバに追加します</para>
<example>
<title>&man.pw.8; によるグループメンバ一覧の設定</title>
<title>&man.pw.8; により新しいグループにメンバを追加する</title>
<screen>&prompt.root; <userinput>pw groupmod teamtwo -M jru</userinput>
&prompt.root; <userinput>pw groupshow teamtwo</userinput>
teamtwo:*:1100:jru</screen>
</example>
<para><option>-M</option> オプションの引数は、
カンマで区切られたグループに所属するユーザの一覧です。
前の節から、
パスワードファイルに各ユーザのグループが記載されていることがわかります。
前者 (ユーザ) は、システムが自動的にグループ一覧に追加します。
<para><option>-M</option> の引数は、
カンマで区切られた新しい (空の) グループに追加するもしくは存在するグループのメンバを置き換えるユーザの一覧です。
ユーザにとっては、このグループのメンバーシップはパスワードファイルに記載されているプライマリのグループとは異なります。
&man.pw.8;<option>groupshow</option> コマンドを使った時は、
そのユーザはグループの一員として表示されませんが、&man.id.1;
などのツールを使って情報を問い合わせれば、
その情報を引き出せます。つまり&man.pw.8;
その情報を引き出せます。ユーザをグループに追加をする際に&man.pw.8;
<filename>/etc/group</filename> しか扱わず、
<filename>/etc/passwd</filename> のデータを読んだりはしません。</para>
<filename>/etc/passwd</filename> から追加のデータを読んだりはしません。</para>
<example>
<title>&man.pw.8; によるグループへのユーザ追加</title>
@ -1081,9 +1033,9 @@ teamtwo:*:1100:jru</screen>
teamtwo:*:1100:jru,db</screen>
</example>
<para><option>-m</option> オプションの引数は、
<para>この例では、<option>-m</option> の引数は、
カンマで区切られたグループに追加するユーザの一覧です。
前の例と異なり、これらのユーザはグループに追加され、
前の例と異なり、これらのユーザはグループ一覧に追加され、
グループのユーザ一覧を置き換えることはありません。</para>
<example>
@ -1093,12 +1045,12 @@ teamtwo:*:1100:jru,db</screen>
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)</screen>
</example>
<para>見れば分かりますが<username>jru</username>
<para>この例では<username>jru</username>
<groupname>jru</groupname> グループと
<groupname>teamtwo</groupname> グループのメンバです。</para>
<para>&man.pw.8; について詳しくはマニュアルページをご覧ください。
<filename>/etc/group</filename> のフォーマットの詳細については、
&man.group.5; マニュアルページをご覧ください。</para>
<para>このコマンドや <filename>/etc/group</filename>
のフォーマットの詳細については、
&man.pw.8; および &man.group.5; をご覧ください。</para>
</sect1>
</chapter>