ユーザーとグループの基本

LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、Linux システムを「誰が」利用しているのかを確認する方法を学びます。

集合住宅を想像してください。

  • ユーザー:入居者
  • グループ:アクセス許可リスト(ジムグループ、プールグループなど)

システムには、全員の情報を管理する「マスターディレクトリ」があります。この実験では、そのディレクトリを開いて確認します。

Linux は、Unix から強力なマルチユーザー設計を受け継いでいます。小さな実験用システムを実際に使っている人が 1 人だけに見えても、オペレーティングシステムはアカウント、グループ、所有権、アクセス制御という観点でシステムを管理します。

ユーザー一覧を表示する(/etc/passwd)

ユーザーの「マスターディレクトリ」は /etc/passwd です。

このファイルは、スプレッドシートのようなものです。各列はコロン : で区切られています。

従来、/etc/passwd は Unix 系システムの中心的なアカウントデータベースでした。現在のシステムでは、古いシステムよりも安全な方法でパスワードを管理しますが、アカウント情報の構造は、Linux のアイデンティティ管理の基礎であり続けています。

ファイルを表示します。

cat /etc/passwd

出力例:

root:x:0:0:root:/root:/bin/bash
labex:x:5000:5000::/home/labex:/usr/bin/zsh
...

labex:x:5000:5000::/home/labex:/usr/bin/zsh の各項目を確認しましょう。

  1. ユーザー名:labex
  2. パスワード:x(別の場所に保存されています)
  3. ユーザー ID(UID):5000
  4. グループ ID(GID):5000
  5. 情報:(空)
  6. ホームディレクトリ:/home/labex
  7. シェル:/usr/bin/zsh

これらの項目は、コースの後半で扱うアイデンティティ、プライマリグループへの所属、ホームディレクトリ、ログイン後に起動するシェルと直接関係します。

root ユーザーを確認する(UID 0)

root ユーザーは、集合住宅の管理人に相当します。すべての場所に入るための鍵を持っています。

root のエントリを検索します。

grep "^root" /etc/passwd

出力:

root:x:0:0:root:/root:/bin/bash

UID(3 番目の項目)は 0 です。Linux では、UID 0 に無制限の権限が与えられます。

Linux の権限を説明するときに、名前だけでなく数値のアイデンティティも使うのはこのためです。名前は人間にとって便利ですが、システム内部では ID が非常に重視されます。

自分のユーザーを確認する

自分のエントリ(labex)を検索します。

grep "^labex" /etc/passwd

出力:

labex:x:5000:5000::/home/labex:/usr/bin/zsh

あなたの UID は 5000 です。

あなたの ホームディレクトリ は /home/labex です。

グループを確認する(id)

/etc/passwd には、プライマリグループのみが記録されています。すべての「アクセスパス」を確認するには、id を使います。

id

出力:

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo)...

これはあなたの ID カードです。

  • uid:現在のユーザー
  • gid:プライマリグループ
  • groups:所属しているすべてのグループ

あなたは sudo グループ(ID 27)に所属しています。これにより、root として操作できます。

グループへの所属は、Linux が共有リソースへのアクセスを管理する主要な方法の 1 つです。すべてのユーザーに対して個別に権限を付与するのではなく、ユーザーをグループに追加し、そのグループにルールを適用できます。

まとめ

この実験では、Linux システムの「ユーザー構成」を確認しました。次の内容を学びました。

  • ユーザーは /etc/passwd ファイルで定義されています。
  • UID 0 は、システム管理者(集合住宅の管理人)である root に割り当てられています。
  • このシステムでは、UID 5000 があなたのユーザーアカウントに割り当てられています。
  • グループは、共有リソースへのアクセスを管理します。
  • id コマンドを使うと、所属グループなど、あなたの完全なアイデンティティを確認できます。グループは、あなたが持つ「鍵」のようなものです。

これらのアイデンティティを理解することは重要です。Linux でのすべての権限、つまり誰がファイルを読み取れるか、誰がプログラムを実行できるかは、これらの ID に基づいて決まるためです。