/etc/passwd の詳細の混乱

/etc/passwd の詳細の混乱

/etc/passwd ファイルは、次の 7 つのフィールドで構成されるユーザー アカウントの行で構成されていることは承知しています。

username:encrypted password or token:userid:groupid:gecos:home directory:default shell 

しかし、一部のユーザーの詳細は

username:x:1000:1000:username,,,:/home/username:/bin/bash

カンマは何を表していますか?

編集

以下の Daniel のコメントに加えて、なぜコンマが表示されるのかと尋ねる理由は、gecos フィールドの他の詳細がないにもかかわらず、/etc/passwd 内の他のユーザー アカウントが同じ構造を持たないように見えるためです。

答え1

Gecos フィールドは、ユーザー名だけでなく、そのユーザーに関する情報も含みます。

  • 本名
  • 部屋番号
  • 電話番号
  • 等々...

見てみるとWikipedia記事の例、これは明らかになります:

jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8910,(234)555-0044,email:/home/jsmith:/bin/sh

5 番目のフィールドは Gecos フィールドと呼ばれ、人物またはアカウントを説明するコメントです。通常、これはユーザーのフルネームと連絡先の詳細を含む、コンマで区切られた値のセットです。

つまり、表示されているのは空のユーザー情報のセットです。これらの情報がどのように処理され、ファイル内で設定されるかは、システムによって異なる可能性がありますpasswd

答え2

元の質問に対するコメントで述べたように:/etc/passwd ファイルに奇妙なカンマがあるのはなぜですか?そしてhttp://en.wikipedia.org/wiki/Gecos_field説明するこれらのフィールドは次のとおりです。

「なぜ彼らは現れるのか」という質問に答えるためにいくつかの「他のユーザーではなく、ユーザーのみ」: この情報は通常、ユーザーをシステムに追加するツールによって作成されます。 たとえば、ユーザーに「部屋番号」などがあっても意味がないためsshd、これらのフィールドはこれらのユーザーを作成するプロセスによって省略されます。

しかし、なぜ私は例えば

mysql:x:107:109:MySQL Server,,,:/var/lib/mysql:/bin/false

私のetc/passwd? このユーザーは、おそらく、便宜上、adduserより低レベルのuseraddツール (名前はもっと良いものだったと思います) の代わりに使用されているスクリプト (多くの一般的なシステムで存在) によって作成され、adduser自動的に Gecos プレース ホルダーを作成します。あるいは、ユーザー作成時に、準拠のために Gecos 形式に従うという意識的な選択だった可能性もありますが、このような場合はほとんど不要な不要な機能だと思います。

では、なぜ通常のユーザーの Gecos フィールドも空なのでしょうか? ユーザーを作成したときに、部屋番号などを記入しなかったためです (システムのインストール中にその選択肢があったかどうかもわかりません。なかったと思います)。

(余談ですが、このシステムでは、たとえば「Daniel Andersson, PhD」というフルネームはほとんどのツールで誤って解釈されます。)

関連情報