diff --git a/ja_JP.eucJP/books/handbook/users/chapter.sgml b/ja_JP.eucJP/books/handbook/users/chapter.sgml index 0c811915df..cb7d4de8ae 100644 --- a/ja_JP.eucJP/books/handbook/users/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/users/chapter.sgml @@ -1,1112 +1,1114 @@ Neil Blakey-Milner 寄稿: ユーザと基本的なアカウントの管理 この章では FreeBSD は、複数のユーザが同時にコンピュータを使えるようにします。 もちろん、 スクリーンとキーボードの前に一度に座れるのはその中の一人だけですが 複数の端末を接続しない限りはですが、 それは にとっておきましょう。 、 ユーザは何人でもネットワークを通してログインして作業できます。 システムを使うためには、 どのユーザもアカウントがなければなりません。 この章を読むと、以下のことがわかります。 FreeBSD のさまざまなユーザアカウントの違い ユーザアカウントの追加方法 ユーザアカウントの削除方法 ユーザの名前やシェルなど、アカウントの細目を変更する方法 アカウント毎に制限をかけて、メモリや CPU 時間など、 アカウントやグループに対してアクセスが許可される資源を制御する方法 アカウント管理を楽にするためのグループの使い方 この章を読む前に &unix; と FreeBSD の基礎知識 () を理解しておいてください。 はじめに システムへアクセスするには、かならずユーザアカウントが使われます。 また、プロセスもすべてユーザによって実行されますので、 ユーザとアカウントの管理は FreeBSD システムにおいて欠かすことのできない重要なものです。 FreeBSD 上のどのアカウントにも、 そのアカウントを識別するための情報がなにかしら結び付けられています。 ユーザ名 login: プロンプトに対して入力するユーザの名前です。 ユーザ名はそのコンピュータ内で一意でなければならず、 2 名のユーザに同じユーザ名をつけることはできません。 有効なユーザ名を作成するには &man.passwd.5; に記載されているいくつもの規則があります。 8 文字以下の小文字からなるユーザ名が一般的です。 パスワード それぞれのアカウントにはパスワードがあります。 パスワードは空白にもでき、 その場合はシステムにアクセスするのにパスワードは不要です。 これは通常はとても悪い考えです。 すべてのアカウントにはパスワードをつけるべきです。 ユーザ ID (UID) UID は、システムがユーザを一意に識別するための、 伝統的には 0 から 65535 UID や GID には 4294967295 までの数を使えますが、 そのような ID は、ID の値に対して仮定を置いているソフトウェアで問題を起こす可能性があります。 の間の数値です。内部的には、FreeBSD はユーザの識別に UID を使っています。ユーザ名を指定できる FreeBSD のコマンドは、 どれもユーザ名を UID に変換してから扱っています。 これは、同じ UID を持つ異なるユーザ名のアカウントがいくつあってもよいということになります。 FreeBSD に限っていうと、 これらのアカウントはひとりのユーザとして扱われます。 そうする必要があるとは思えませんが。 グループ ID (GID) GID は、ユーザが属する第一グループを一意に識別するための、 伝統的には 0 から 65535 の間の数値です。グループは、UID ではなく、 ユーザの GID に基づいて資源へのアクセスを制御する仕組みです。 これは、ある種の設定ファイルのサイズを大幅に小さくします。 ユーザは、複数のグループに所属できます。 ログインクラス ログインクラスはグループの仕組みを拡張したもので、 別々のユーザに対してシステムを調整する時に、 さらなる柔軟性を提供します。 パスワード変更時間 デフォルトでは、FreeBSD は定期的にパスワードを変更することをユーザに強制しません。 これをユーザごとに設定して、一部またはすべてのユーザに、 一定の時間がたったらパスワードを強制的に変更させることができます。 アカウント失効時間 デフォルトでは、FreeBSD はアカウントを失効させません。 たとえば学校で生徒のアカウントがある場合など、 限られた期間だけのアカウントを作成するなら、 そのアカウントがいつ失効するか指定できます。 有効期間が経過したら、 そのアカウントのディレクトリやファイルは残っていますが、 システムへのログインはできなくなります。 ユーザの氏名 FreeBSD ではユーザ名でアカウントを一意に識別しますが、 必ずしもユーザの本名を反映したものではありません。 この情報をアカウントに関連付けることもできます。 ホームディレクトリ ホームディレクトリは、 ユーザがログインした時に作業を開始する、 システム中のディレクトリへのフルパスです。 一般的な慣習は、すべてのユーザのホームディレクトリを /home/username/usr/home/username の下に置くことです。 ユーザは、個人のファイルをホームディレクトリや、 その下に作成するディレクトリに保存します。 ユーザシェル シェルは、 ユーザがシステムと対話するデフォルトの環境を提供します。 いろいろな種類のシェルがあり、 経験を積んだユーザはそれぞれ好みがあり、 それをアカウントの設定に反映できます。 アカウントには大きく分けて三種類のものがあります。それは、 スーパーユーザ (Superuser)、 システムユーザ (system users)、 そしてユーザアカウント (user accounts) です。 スーパーユーザのアカウントは通常 root と呼ばれ、 無制限の特権を持つためにシステムの管理に用いられます。 また、システムユーザはサービスの運用に用いられ、 最後のユーザアカウントは、 実際にログインしてメールを読むといった作業を行なう利用者のためのものです。 スーパーユーザアカウント アカウント スーパーユーザ (root) スーパーユーザアカウントは通常 root と呼ばれ、 システム管理を行なうために最初から設定済みです。 このアカウントはメールのやりとり、システムの調査、 プログラミングといった日常的な作業を行なうために使われるべきものではありません。 その理由は、スーパーユーザが通常のユーザアカウントと異なり、 操作にまったく制限を受けないことによります。 そのためスーパーユーザアカウントで操作を間違えると、 システムに重大な影響を与えてしまう恐れがあるのです。 ユーザアカウントでは、仮に操作を間違えてもシステムを壊してしまうようなことは できないようになっています。したがって特権を必要としていないのであれば、 できるだけいつもユーザアカウントを利用する方が望ましいと言えるでしょう。 スーパーユーザで実行するコマンドはいつでも、 二回、三回と確認してください。 なぜならスペースが多かったり、文字が欠けていたりするだけで、 取り返しのつかないデータの破壊につながる可能性があるからです。 ですから、この章を読んでからあなたが最初にすべきなのは、 もし用意していないなら、日常的に利用するための あなた自身のユーザアカウントを作成することです。 これはマルチユーザモード、シングルユーザモードを問わず、 同様にあてはまります。 この章のうしろの方では、アカウントの追加と通常のユーザから スーパーユーザへと移行する手順について扱います。 システムアカウント アカウント システム システムユーザとは、DNS、メール、 ウェブサーバといった各種サービスを運用するために使われます。 この目的は、セキュリティを確保するためです。 もしサービスがスーパーユーザで実行されていると、 それらのサービスは (本来意図しないような) どんな動作でも可能となり、適切な制限を適用することができません。 アカウント daemon アカウント operator システムユーザの具体例として、 daemon, operator, bind (DNS; Domain Name Service 用), news および www といったものがあります。 またシステム管理者はよく、 インストールしたウェブサーバを運用するために httpd というユーザを作成しています。 アカウント nobody nobody ユーザは通常の特権を持たないシステムユーザです。 しかし、nobody を利用するサービスが増えれば増えるほど、 それに所属するファイルやプロセスも増え、 その特権も大きくなるということを忘れないようにしてください。 ユーザアカウント アカウント user ユーザアカウントは、 主に現実のユーザがシステムにアクセスする手段として用いられるものです。 このアカウントは利用するユーザとシステム環境を分離します。 そのため、システムや他のユーザに危害をおよぼす危険性をなくし、また、 他に影響を与えることなくユーザ自身の環境をカスタマイズすることを可能にしています。 システムにアクセスするすべてのユーザは、 それぞれ唯一のユーザアカウントを持つべきです。 こうすることで誰が何を行なっているかがわかりますし、 他の人の設定を壊してしまったり、 他人のメールを読んでしまうようなことを避けることができます。 それぞれのユーザは快適にシステムを利用するため、 シェル、エディタ、キー設定、言語など、 各自の環境をセットアップすることができます。 アカウント情報の変更 アカウント 変更 &unix; 環境では、 ユーザアカウントを操作するのにさまざまなコマンドが使えます。 もっとも一般的なコマンドを以下に示し、 それに続いて詳しい使用例を示します。 コマンド 要約 &man.adduser.8; コマンドラインからユーザを追加するための推奨アプリケーション &man.rmuser.8; コマンドラインからユーザを削除するための推奨アプリケーション &man.chpass.1; ユーザデータベースの情報を変更するための柔軟なツール &man.passwd.1; ユーザのパスワードを変更する簡単なコマンドラインツール &man.pw.8; ユーザアカウントのあらゆる箇所を変更する強力で柔軟なツール <command>adduser</command> アカウント 追加 adduser /usr/share/skel スケルトンディレクトリ &man.adduser.8; は、 新しいユーザを登録するためのシンプルなプログラムです。 このプログラムは、システムの passwdgroup ファイルに新しい項目を作成します。 また、新規ユーザのホームディレクトリを作成し、 /usr/share/skel から、デフォルトで使用される設定ファイル (ドットファイル) をコピーします。また、新しく作成されたユーザに対して、 ウェルカムメッセージをメールで送信することも可能です。 - - 入力したパスワードは画面に表示されません。 - アスタリスク記号も表示されませんので、 - パスワードを間違えて入力してしまわないように注意してください。 - - - - これ以降はオプション引数をつけず単に &man.adduser.8; - を起動します。 - デフォルト設定を変更する必要はありません。 - もし、adduser がデフォルト設定を変更するかどうか尋ねてきたら、 - adduser を終了し、 - オプションを使うようにしてください。 - - &os; におけるユーザの追加 &prompt.root; 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! &prompt.root; + + + 入力したパスワードは画面に表示されません。 + アスタリスク記号も表示されませんので、 + パスワードを間違えて入力してしまわないように注意してください。 + <command>rmuser</command> rmuser アカウント 削除 &man.rmuser.8; を使えば、 システムから完全にユーザを削除できます。 &man.rmuser.8; は、次の手順を実行します。 指定されたユーザの &man.crontab.1; エントリを削除 (存在する場合)。 指定されたユーザの &man.at.1; ジョブをすべて削除。 指定されたユーザが所有するすべてのプロセスを強制終了。 ローカルパスワードファイルから、 指定されたユーザのエントリを削除。 指定されたユーザのホームディレクトリを削除 (ディレクトリの所有者が指定されたユーザのものだった場合)。 /var/mail から、指定されたユーザの到着メールファイルを削除。 /tmp のような一時ファイル保存領域から、 指定されたユーザの所有するファイルを削除。 そして最後に、 /etc/group にある - すべてのグループから、指定されたユーザを削除します。 + すべてのグループから、指定されたユーザを削除します。 指定されたユーザと同じ名前のグループで、 そのユーザが削除されると空のグループとなる場合は、 そのグループ自体が削除されます。 これは &man.adduser.8; によってユーザごとに作成される、 - ユニークなグループに対応するものです。 - + ユニークなグループに対応するものです。 - スーパユーザアカウントの削除に &man.rmuser.8; を利用することはできません。 スーパユーザアカウントの削除はほとんどすべての場合、 大規模なシステムの破壊を意味するからです。 デフォルトでは、 どういう操作を行なっているか確認できる対話モードが使われます。 <command>rmuser</command> による対話的なアカウントの削除 &prompt.root; 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. &prompt.root; <command>chpass</command> chpass &man.chpass.1; は、 パスワード、シェル、その他の個人情報といった、 ユーザデータベース情報を変更します。 システム管理者に限りスーパユーザ権限で &man.chpass.1; を用い、 他のユーザの情報やパスワードを変更できます。 ユーザ名の他にオプションを指定しないと、 &man.chpass.1; はユーザ情報を編集するエディタを表示します。 ユーザがエディタを終了すると、 ユーザデータベースが新しい情報に更新されます。 スーパユーザでない場合は、 エディタを抜けた後にパスワードを聞かれます。 スーパユーザによる対話的な <command>chpass</command> #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: 通常のユーザは、この情報の限られた部分のみ変更が可能です。 また、変更できるのはそのユーザ自身の情報のみです。 通常のユーザによる対話的な <command>chpass</command> #Changing user database information for jru. Shell: /usr/local/bin/zsh Full Name: J. Random User Office Location: Office Phone: Home Phone: Other information: &man.chfn.1;, &man.chsh.1; はいずれも、単に &man.chpass.1; へのハードリンクになっています。 また、&man.ypchpass.1;, &man.ypchfn.1; および &man.ypchsh.1; も同様です。 NIS のサポートは自動的に行なわれますので、 コマンドの先頭に yp をつける必要はありません。 もし、混乱しても心配しないでください。 NIS については、 で説明されています。 <command>passwd</command> passwd アカウント パスワードの変更 &man.passwd.1; は、 ユーザが自分のパスワードを変更する通常の方法です。 スーパユーザ権限では、 他のユーザのパスワードを変更するのに使われます。 誤って、または不正なパスワードの変更を避けるため、 新しいパスワードを設定する前に、 もとのパスワードを入力しなければなりません。 自分のパスワードの変更 &prompt.user; passwd Changing local password for jru. Old password: New password: Retype new password: passwd: updating the database... passwd: done スーパーユーザ権限での他のユーザのパスワード変更 &prompt.root; passwd jru Changing local password for jru. New password: Retype new password: passwd: updating the database... passwd: done &man.chpass.1; 同様、&man.yppasswd.1; は、単に &man.passwd.1; へのハードリンクになっていますので、 NIS はどちらのコマンドでも動作します。 <command>pw</command> pw &man.pw.8; は、ユーザやグループの作成、削除、 変更および表示を行なうコマンドラインのユーティリティです。 これは、システムユーザファイルやシステムグループファイルの フロントエンドとして働きます。&man.pw.8; はとても強力な一連のコマンドラインオプションを有しており、 シェルスクリプトで使うのに向いていますが、新しいユーザは、 ここで紹介されている他のコマンドに比べて難しいと感じるかもしれません。 ユーザへの制限 ユーザに対する制限 アカウント 制限 ユーザがいるなら、 彼らに対してシステムの利用を制限できないか考えたことがあるのではないでしょうか。 FreeBSD は、 個々のユーザが利用できるシステム資源の量を管理者が制限できる方法をいくつも用意しています。 その種の制限は、ディスククォータ (quota) とその他の資源の制限の とその他のリソースの制限の 2 つに分けられます。 クォータ (quotas) ユーザに対する制限 クォータ ディスククォータ ディスククォータは、ユーザのディスクの利用を制限し、 その都度計算しなくてもユーザのディスク使用量を簡単に確認できる手段も提供しています。 クォータについては、 で解説しています。 その他のリソースの制限とは、ユーザが消費できる CPU、メモリなどのリソースを制限する手段のことです。 これはログインクラスを用いて定義されているもので、 この後で解説しています。 /etc/login.conf ログインクラスは /etc/login.conf で定義します。詳細な働きの説明はこの節の範囲を超えますが、 &man.login.conf.5; のマニュアルに詳しく記載されています。 各ユーザにはログインクラスが割り当てられていて (デフォルトでは default です)、 それぞれのログインクラスにはログインケーパビリティの集合が割り当てられているといえば十分でしょう。 ログインケーパビリティとは、 名称= の組のことで、名称 は周知の識別子、 は、名称に応じて処理される任意の文字列です。 ログインクラスとケーパビリティを設定するのはどちらかといえば簡単なことで、 &man.login.conf.5; でも説明されています。 システムは普通は、直接 /etc/login.conf ファイルから設定を読み込まず、 より速く検索できるデータベースファイル /etc/login.conf.db から読み込みます。/etc/login.conf から /etc/login.conf.db を生成するには、 次のコマンドを実行してください。 &prompt.root; cap_mkdb /etc/login.conf リソースの制限は、 2 つの点で標準的なログインケーパビリティと異なっています。 第一に、どの制限についても、ソフト (現在の) リミットとハードリミットがあります。 ソフトリミットは、ユーザやアプリケーションが調整できますが、 ハードリミットを超えることはできません。 ユーザはハードリミットを下げることはできますが、上げることはできません。 第二に、ほとんどのリソースの制限は特定のユーザに対してプロセス毎に適用されるもので、 そのユーザが利用するリソースの総量を制限するものではありません。 ただし、この違いは制限を特別扱いすることで実現されるものであり、 ログインケーパビリティフレームワークの実装によるものではありません (つまり、リソースの制限は、 実際にはログインケーパビリティの特別な場合ではないのです)。 難しい話はこのくらいにしておいて、 以下が最もよく使われるリソースの制限になります (残りは、他のすべてのログインケーパビリティと並んで &man.login.conf.5; に書かれています)。 coredumpsize coredumpsize ユーザに対する制限 coredumpsize プログラムが生成する core ファイルのサイズにかかる制限は、 自明な理由でほかのディスク使用に関する制限に従属します (例: filesize やディスククォータ)。それでも、 ディスク領域の消費を制御するあまり厳しくない手段としてよく使われています。 ユーザは core ファイルを自分で生成するわけではなく、 削除しないことも多いので、これを設定すれば大きなプログラム (たとえば Emacs) が異常終了してもディスクの空きがなくならずに済みます。 cputime cputime ユーザに対する制限 cputime そのユーザのプロセスが消費できる CPU 時間の上限です。 - これを超えたプロセスは、カーネルにより終了されます。 + これを超えたプロセスは、カーネルにより終了されます。 これは、消費される CPU 時間 についての制限であって、&man.top.1; や&man.ps.1; の項目のどれかに表示される CPU の割合に関するものではありません。 これを書いている時点では後者の制限はかけられませんし、 役にたたないでしょう。たとえば (正当なタスクである可能性が高い) コンパイラはたやすく一定時間 CPU を 100% 近く使ってしまいます。 - filesize filesize ユーザに対する制限 filesize ユーザが所有できるファイルの大きさの上限です。ディスククォータ と違い、 この制限はユーザのファイルをすべてまとめた集合にではなく、 個々のファイルにかかります。 maxproc maxproc ユーザに対する制限 maxproc ユーザが実行できるプロセス数の上限です。 フォアグラウンドプロセスとバックグラウンドプロセスの両方を平等に扱います。 自明な理由から、&man.sysctl.8; 変数 kern.maxproc で指定されたシステムの制限を超えることはできません。 また、同時に複数ログインすることや、 パイプライン実行することは便利なことが多いので、 この値をあまり小さな値に設定すると、 そのユーザの生産性が悪化することにも注意してください。 大きなプログラムをコンパイルする場合のように、 タスクによっては複数のプロセスが実行されます (たとえば &man.make.1;, &man.cc.1; や、その他仲立ちとなるプリプロセッサ)。 memorylocked memorylocked ユーザに対する制限 memorylocked これは、 1 つのプロセスがメインメモリにロックされることを要求できるメモリの最大容量です (&man.mlock.2; をご覧ください)。&man.amd.8; のようなシステムで重要なプログラムは、 メインメモリへロックして、スワップアウトイベントにおいて、 問題発生時にシステムのスラッシングを引き起こさないようにします。 memoryuse memoryuse ユーザに対する制限 memoryuse これは、どの時点かを問わず、 あるプロセスが消費できる最大のメモリ容量です。 これは、メインメモリとスワップの使用量を合わせたものです。 メモリ消費を抑えるための包括的な制限ではありませんが、 手始めにはよいでしょう。 openfiles openfiles ユーザに対する制限 openfiles これは、あるプロセスが開いておける最大のファイル数です。 FreeBSD では、ファイルはまた、ソケットや IPC チャンネルを表わすのにも使われています。 ですから、あまり低い値に設定しないよう注意してください。 これに対応するシステム全体の制限は &man.sysctl.8; 変数 kern.maxfiles で定義されています。 sbsize sbsize ユーザに対する制限 sbsize これは、あるユーザが消費できるネットワークメモリ (つまり mbuf) の上限の量です。これは、 大量のソケットを生成する古いサービス拒否攻撃に対応するものとして作られましたが、 一般的にはネットワーク通信を制限するのに使えます。 stacksize stacksize ユーザに対する制限 stacksize これは、プロセスのスタックサイズの上限です。 あるプログラムが使用しうるメモリの量を制限するには、 これだけでは十分ではありません。 したがって、他の制限と組み合わせて使わなければなりません。 リソースの制限を設定するにあたり、 ほかにもいくつか覚えておかなければならないことがあります。 以下は、一般的なこつやお勧め、さまざまなコメントになります。 システム起動時に /etc/rc から起動されたプロセスは、daemon ログインクラスに割り当てられます。 システムに付属していた /etc/login.conf はほとんどの制限について妥当な値になっていますが、 あなたのシステムに何がふさわしいか分かるのは、 管理者であるあなただけです。 制限をあまり緩くするとシステムを悪用しやすくしてしまいますし、 厳しくしすぎると生産性を悪化させてしまいます。 X Window System (X11) のユーザには、 他のユーザより多くのリソースを与えるべきかもしれません。 X11 そのものが多くのリソースを使うだけでなく、 より多くのプログラムを並行して使うことをユーザに促します。 多くの制限は個々のプロセスにかかるもので、 一人のユーザにまとめてかかるものではないことを忘れないでください。 例えば、openfiles を 50 に設定することは、 ユーザが動かすそれぞれのプロセスが最大 50 個のファイルを開けるということです。 したがって、あるユーザが開けられるファイルの総数は、 openfiles の値に maxproc をかけたものになります。 同じことがメモリ消費量にもあてはまります。 リソースの制限と、ログインクラス、 ログインケーパビリティ一般についての詳しい情報は、 それぞれのマニュアルページ、 &man.cap.mkdb.1;, &man.getrlimit.2;, &man.login.conf.5; をご覧ください。 グループ グループ /etc/groups アカウント グループ グループとは、単にユーザを羅列したものです。 グループは、グループ名と GID (グループ ID) で識別されます。 FreeBSD (と他の &unix; システムのほとんど) では、 あるプロセスが何かするのを許可するかどうかをカーネルが判断する際に利用する 2 つの因子は、ユーザ ID とそのユーザが所属するグループの一覧です。 ユーザ ID と異なり、プロセスはそのプロセスに関係付けられたグループの一覧を持ちます。 どこかで グループ ID に触れているのを聞くことがあるでしょうが、 ほとんどの場合は、これは単に一覧の最初のグループを指しています。 グループ名からグループ ID への写像は /etc/group にあります。 これは、コロンで区切られた 4 項目からなるテキストファイルです。 1 番目の項目はグループ名、 2 番目は暗号化されたパスワード、 3 番目がグループ ID、 4 番目がカンマで区切られたメンバの一覧です。 これは手で編集して問題ありません (もちろん、文法をまったく間違えない限りはですが)。 文法についての完全な説明は、&man.group.5; をご覧ください。 /etc/group を手で編集したくなければ、 &man.pw.8; コマンドを使ってグループの追加や編集をできます。 たとえば、teamtwo というグループを追加して、その存在を確認するには、 次のように使えばできます。 &man.pw.8; によるグループの追加 &prompt.root; pw groupadd teamtwo &prompt.root; pw groupshow teamtwo teamtwo:*:1100: 上記の 1100 という番号は、 teamtwo グループのグループ ID です。 この時点では、teamtwo にはメンバがおらず、あまり意味がありません。 jruteamtwo に参加させて、この状況を変えましょう。 - &man.pw.8; によるグループへのユーザ追加 + &man.pw.8; によるグループメンバ一覧の設定 &prompt.root; pw groupmod teamtwo -M jru &prompt.root; pw groupshow teamtwo teamtwo:*:1100:jru オプションの引数は、 カンマで区切られたグループに所属するユーザの一覧です。 前の節から、 パスワードファイルに各ユーザのグループが記載されていることがわかります。 前者 (ユーザ) は、システムが自動的にグループ一覧に追加します。 &man.pw.8; の コマンドを使った時は、 そのユーザはグループの一員として表示されませんが、&man.id.1; などのツールを使って情報を問い合わせれば、 その情報を引き出せます。つまり、&man.pw.8; は /etc/group しか扱わず、 /etc/passwd のデータを読んだりはしません。 + + &man.pw.8; によるグループへのユーザ追加 + + &prompt.root; pw groupmod teamtwo -m db +&prompt.root; pw groupshow teamtwo +teamtwo:*:1100:jru,db + + + オプションの引数は、 + カンマで区切られたグループに追加するユーザの一覧です。 + 前の例と異なり、これらのユーザはグループに追加され、 + グループのユーザ一覧を置き換えることはありません。 + グループに所属しているユーザを調べるための &man.id.1; の使い方 &prompt.user; id jru uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) 見れば分かりますが、jrujru グループと teamtwo グループのメンバです。 &man.pw.8; について詳しくはマニュアルページをご覧ください。 /etc/group のフォーマットの詳細については、 &man.group.5; マニュアルページをご覧ください。