RHEL 7.8では、空白行がある可能性があることを知っています。/etc/passwd
しかし、コメント行を持つことはできますか?コメント行は何で始まりますか?
答え1
アカウントデータベースなどを処理するために使用されるmusl Cライブラリルーチンは、ファイルにコメントを付けることは
getpwent()
できません。/etc/passwd
/etc/shadow
図書館コードいかなるキャラクターも解説者として扱われません。 (また、行をYPフラグとして認識せず、+
特別なタグをまったく許可しません。)
お持ちの場合どのmusl C ライブラリ用に作成されたプログラムでは、これらのファイルにコメントを追加しないでください。
しかし、GNU CライブラリとFreeBSD Cライブラリの両方するコメントが許可されています。
具体的には:
GNU Cライブラリコードは、files
すべてのNSSデータベースのソースコードを提供します。(マニュアルを参照)nsswitch.conf
空白ではなく、最初の文字で行コメントを許可します。したがって、含めることができるのはコメント#
だけではありません。/etc/passwd
/etc/shadow
BSDでは、この/etc/passwd
ファイルいいえアカウントデータベース。 BSDのアカウントデータベースいいえこれはフラットファイルデータベースですが、Berkeley DBファイル(実際には2つ/etc/pwd.db
の合計/etc/spwd.db
)であり、Berkeley DBファイルの性質上、コメントは許可されません。
/etc/master.passwd
はいにコンパイルツールのアカウントデータベースpwd_mkdb
。
/etc/passwd
BSDのファイルは、Cライブラリルーチンによる照会に実際に使用されずに発行された仮想逆互換ファイルであり、より良いコマンド(Cライブラリシェルスクリプトをラップするコマンド)ではなく、直接などを使用してシェルスクリプトを使用する人だけのためのものですpwd_mkdb
。です。 )。awk /etc/passwd
getent passwd
FreeBSDとその派生物については/etc/master.passwd
コメントを含めることができます。そしてpwd_mkdb
ツールコメントをからにコピーします/etc/master.passwd
。/etc/passwd
、デフォルトのBerkeley DBファイルに入れないでください。#
TAB および SPC 文字を前に追加するオプションがありますが、これはそうではありません。かなりGNU Cライブラリと同じです(isspace()
GNU Cライブラリルーチンを使用するプロセスのロケールによって満たされるすべての空白文字を許可します。これは非常にあいまいなit-時にはコメントとして、時には秘密として記録されることがあります)。エラーが発生します)。
対照的に、OpenBSDおよびNetBSDpwd_mkdb
コマンドはdummyにコメントを追加することはできず、/etc/master.passwd
dummyにコメントを挿入しません/etc/passwd
。
したがって、FreeBSDでは、すべての(関連する)プログラムがGNU Cにリンクされている限り、#
TABおよびSPCの前のコメント、および/etc/master.passwd
現在#
のロケール文字でisspace()
始まるコメント、および/etc/passwd
Linuxベースのオペレーティングシステムの他のNSSソースコード全体を使用できます。/etc/shadow
図書館。
答え2
ファイルにはユーザー入力のみが許可されます/etc/passwd
。それ以外の入力は誤った形式と見なされ、ファイルに依存するいくつかのツールが失敗する可能性があります。
TLDR:なし
答え3
の各レコードは/etc/passwd
ユーザーアカウントを記述し、コメント行はサポートされていません。
passwd(5)
ファイル形式については()を参照してください。man 5 passwd