/etc/group
100%

ユーザー管理 · レッスン 5

/etc/group

ローカルのグループレコードが名前を GID に対応付け、補助メンバーを列挙する仕組みを学びます。

/etc/group はローカルのグループレコードを保存します。グループ名を数値 GID に対応付け、明示的なメンバーを列挙することで、複数アカウントが共有するアクセス制御を支えます。

ローカルグループと解決済みグループ

このファイルは、グループ情報源の一つにすぎません。NSS はローカルファイル、ディレクトリサービスなど、設定されたデータベースからグループを解決できます。ローカルレコードは次のように表示します。

$ cat /etc/group

解決済みグループデータベースは getent で問い合わせます。

$ getent group
$ getent group developers

グループ一覧は内部のアカウント名や役割名を開示する場合があるため、共有前に出力を確認してください。

NSS が解決するグループデータベースを問い合わせるコマンドはどれですか?

4個のフィールドを読む

ローカルレコードには、コロンで区切られた4個のフィールドがあります。

developers:x:1500:alice,bob
  1. グループ名: developers
  2. パスワードフィールド: 一般に x* などのプレースホルダー。保護されたグループパスワードデータは /etc/gshadow に保存できます。
  3. GID: 数値のグループ識別情報。この例では 1500
  4. メンバー一覧: コンマ区切りの明示的なメンバー名。この例では alicebob

グループパスワードは、一部の構成で newgrp などが使う従来の機能です。sudo の認可を与える通常の仕組みではなく、フィールドの手動編集で導入すべきでもありません。

developers:x:1500:alice,bob で GID を含むフィールドはどれですか?

ローカルグループレコードで、明示的なメンバー名はどのように表されますか?

プライマリグループ所属を考慮する

/etc/group のメンバー一覧には通常、passwd レコードでその GID をプライマリグループとして指定しているユーザーを重ねて記録しません。そのため、第4フィールドに名前がなくても、そのユーザーがグループメンバーである場合があります。

たとえば、Alice の passwd レコードでプライマリ GID が1500なら、ローカルグループレコードのメンバーフィールドが空でも、Alice は developers に所属します。

developers:x:1500:

したがって、第4フィールドだけを解析すると、所属関係を完全には把握できません。

Alice の passwd レコードでは GID 1500 がプライマリ GID ですが、グループ1500の第4フィールドに名前がありません。Alice はそのグループのメンバーですか?

ユーザーのグループを確認する

解決済みアカウントのビューには id USER または groups USER を使います。

$ id alice
$ groups alice

現在のプロセスについては、引数なしの id が資格情報に実際に含まれるグループを報告します。新しく設定した補助グループ所属は通常、すでに実行中のログインセッションには現れません。新しい認証済みセッションを開始するか、必要に応じて意図的に設定した newgrp などの仕組みを使います。

現在のプロセスの UID、プライマリ GID、補助グループを報告するコマンドはどれですか?

ローカルグループを安全に変更する

汎用エディターでレコードを編集せず、groupaddgroupmodgroupdelgpasswdusermod などのツールを使います。特に次の違いに注意してください。

  • usermod -aG GROUP USER: 補助グループ所属を追加します。
  • usermod -G ...: -a を省略すると、補助グループ一覧を置き換えます。

ローカルデータベースの手動修復が避けられない場合は、vigr でロックし、grpck で検証します。リモートの識別情報を変更する前に、復旧経路を確保してください。

管理された環境でローカルグループ管理を練習するには、次のハンズオンラボを利用できます。

  1. useradd、usermod、userdel で Linux ユーザーアカウントを管理する - 新規アカウントの作成と保護から変更、削除まで、ユーザー管理のライフサイクル全体を練習します。
  2. groupadd、usermod、groupdel で Linux グループを管理する - groupaddusermodgroupdel など、グループ管理の主要なコマンドラインユーティリティーを実践します。
  3. 新しいユーザーとグループを追加する - 新規ユーザーアカウントとカスタムグループを作成し、所属を管理することで、サーバー環境へ新しいメンバーを追加する状況を模擬します。

レッスン完了

/etc/group を完了しました

ローカルグループレコードを解釈し、完全な所属関係をより正確に解決できるようになりました。

  • getent group で設定済みのグループ情報源を問い合わせる。

  • コロンで区切られた4個のグループフィールドを読む。

  • 数値 GID と明示的なメンバー一覧を特定する。

  • passwd レコードから得られるプライマリ所属を含める。

  • 変更した所属に依存する前に、有効な資格情報を確認する。

学習進捗を保存

無料アカウントを作成してこのレッスンを保存し、どのデバイスからでも学習を続けられます。

無料アカウントを作成
次のレッスン
ユーザー管理 に戻る