拡張するとき/etc/passwd
GECOSフィールドユーザーのフルネームを取得するには、最初のアンパサンド(&
文字)のみを拡張する必要がありますか、またはすべてのアンパサンドを拡張する必要がありますか?
カンマ()で区切られたサブフィールドを持つGECOSフィールドでは、アンパサンドは最初のサブフィールド,
(つまりユーザーのフルネーム)でのみ拡張する必要がありますか、またはすべてのサブフィールドで拡張する必要がありますか?
Unixのユーザー名に大文字が含まれている場合は、&
それを拡張子に保持する必要がありますか、それともユーザー名の最初の文字を大文字で、残りの部分を小文字にする必要がありますか?
答え1
- & 記号は次のとおりです。ただから展開されます最初カンマで区切られたサブフィールド(いわゆる「フルネーム」または「実名」サブフィールド)GECOSフィールドにカンマがない場合、フィールド全体は実名として扱われます。
- 最初のシンボルだけでなく、すべての&シンボルが展開されます。
- ユーザー名の最初の文字がASCII小文字の場合、その文字はアンパサンド拡張子の大文字です。それ以外の場合はそのまま残ります。最初の文字を除いて、大文字と小文字は変換されません。
この情報の事実上権威のあるソースは、sendmail
サーバーとfinger
クライアントの実装です。 BSDとSolarisの実装はどちらもオープンソースであり、どちらも上記の規則に同意するようです。
これGECOSフィールドこれ以上フィールドの最新名ではありません。より正確にはこう呼ぶべきです。フィンガーフィールドこれは、ほとんどすべてのシステムでコンマで区切られたサブフィールドの予想されるレイアウトがフィンガーからのものです。