【Linux入門】/etc/passwd について

 '/etc/passwd' ファイルは、Unix系オペレーティングシステム(Linuxを含む)において、ユーザーアカウントに関する基本的な情報を格納するテキストファイルです。このファイルはシステムのユーザー管理に関連する情報を提供します。

以下に ' /etc/passwd' ファイルの概要を解説します。

ユーザーアカウント情報の保存

ユーザー情報

 各行が1つのユーザーアカウントに関する情報を示します。各行はコロン : で区切られた複数のフィールドから構成されます。

フィールドの情報

 それぞれのフィールドには、ユーザー名、パスワード(ハッシュ化された値)、ユーザーID (UID)、グループID (GID)、ユーザー情報、ホームディレクトリのパス、デフォルトシェルなどが格納されます。

ファイルの構造

各行の構成

 通常、各行は特定のユーザーアカウントに関する情報を示し、フィールドはコロン : で区切られています。例えば、以下はエントリの例です。

username:password:UID:GID:user_info:home_directory:default_shell

各フィールドの役割

  • ユーザー名 (Username)
    ユーザーアカウントの識別用の名前です。この名前を使用してユーザーアカウントを特定します。
  • パスワード (Password)
     実際のパスワードはファイル内に保存されず、代わりにハッシュ化された値がここに置かれます。実際のパスワードは /etc/shadow ファイルに保存されることが一般的です。
  • ユーザーID (UID)
     ユーザーアカウントの一意の数値識別子です。システム内でユーザーアカウントを識別するために使用されます。
  • グループID (GID)
    ユーザーが所属するプライマリグループの数値識別子です。
  • ユーザー情報 (User Information)
    通常はユーザーのフルネームやコメントが含まれます。
  • ホームディレクトリ (Home Directory)
    ユーザーがログインした際に配置されるディレクトリのパスです。
  • デフォルトシェル (Default Shell)
    ユーザーがログインした後に使用されるデフォルトのシェルのパスです。

/etc/passwd のファイル構造の例

例えば、以下は実際のエントリの例です。

john:x:1000:1000:John Doe,/home/john:/bin/bash

 各フィールドはコロン : で区切られており、それぞれがユーザーアカウントに関する特定の情報を表しています。

フィールド番号フィールド名説明
1ユーザー名ユーザーアカウントの名前john
2パスワードユーザーのパスワード (ハッシュ)x (または *など)
3ユーザーIDユーザーアカウントの識別子1000
4グループIDプライマリグループの識別子1000
5ユーザー情報ユーザーのフルネームやコメントJohn Doe, User info
6ホームディレクトリユーザーのホームディレクトリのパス/home/john
7デフォルトシェルユーザーのデフォルトシェル/bin/bash
'/etc/passwd' のファイル構造の例

セキュリティと権限

 '/etc/passwd' ファイルは非常に重要なシステムファイルであり、一般ユーザーがアクセスすることは制限されています。通常、このファイルの所有権はルートユーザーにあり、ルート権限でのみ変更できます。

 ユーザーアカウント情報の誤った変更はシステムのセキュリティや安定性に影響を及ぼす可能性があるため、慎重に管理される必要があります。

 例えば、一般ユーザーで vi コマンドで編集しようとすると、「[読込専用]」となり、編集することはできません。

(略)
saned:x:996:993:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gluster:x:995:992:GlusterFS daemons:/run/gluster:/sbin/nologin
amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash
"/etc/passwd" [読込専用] 46L, 2413C                           11,1         先頭