Buildrootグループファイルが奇妙なエントリで終わる

Buildrootグループファイルが奇妙なエントリで終わる

私の目標は、Buildrootが私のファイルgroupに奇妙に見える出力を生成する理由を理解し、これが問題を引き起こしていることを確認することです。本当に問題がある場合は、その理由を見つけて解決策を見つけたいと思います。

私はBuildrootを使用してLinuxイメージを作成し、次の表に追加のBR2_ROOTFS_USERS_TABLESユーザーを作成します。

#username  uid group gid password  home  shell groups  comment
cow 1022  four_legs 155 fake  /home/cow /bin/bash -
duck  1023  wings 156 fake  /home/duck  /bin/bash -
goose 1024  wings 156 fake  /home/goose /bin/bash -
pig 1025  four_legs 155 fake  /home/pig /bin/bash -
horse 1026  four_legs 155 fake  /home/horse /bin/bash -
chicken 1027  wings 156 fake  /home/chicken /bin/bash -
fish  1028  fins  157 fake  /home/fish  /bin/bash -

私のフィールドは、次のようにスペースで区切られます。文書

私は結局理解したかったのですが、理解できなかった奇妙な現象に直面しました。私のgroupファイルは次のとおりです。

/etc # cat group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
kmem:x:9:
wheel:x:10:root
cdrom:x:11:
dialout:x:18:
floppy:x:19:
video:x:28:
audio:x:29:
tape:x:32:
www-data:x:33:
operator:x:37:
utmp:x:43:
plugdev:x:46:
staff:x:50:
lock:x:54:
netdev:x:82:
users:x:100:
nobody:x:65534:four_legs:x:155:
four_legs:x:155:
wings:x:156:
fins:x:157:
sshd:x:1000:
:x:1001:cow,duck,goose,pig,horse,chicken,fish

1: ある行に改行なしでグループを追加nobodyし、four_legs次の行でグループを繰り返します。なぜこのように生成されるのか理解できません。four_legsこれにより、人がいない同じ行に問題が発生し、次の行で繰り返されますか?

2:最後の行では、テーブルから追加したすべてのユーザーがメンバーである新しいGIDを使用して、名前がないように見えるグループを作成します。最後の行が必要ですか?もしそうなら、それは何のために使用されますか?私が何かを間違って入力して奇妙なグループファイルができましたか?

完全なクリーンビルドはそれを変更しないようで、予想通りにpasswd見えます。shadowまた、ユーザーテーブルのエントリの順序は何の影響もないようです。そこで定義された最初の新しいグループがオンラインで繰り返されますnobody

最後の注意:コメントフィールドにコメントを追加すると、Buildrootが混乱し、上記のファイルのほとんどをpasswd

答え1

まあ、それは完全に私のせいで、次の3つが組み合わされました。

  1. スプレッドシートにユーザーテーブルを作成し、結果をテキストエディタに貼り付けると大丈夫に見えましたが、Excelでは特定の文字で始まるフィールドを一重引用符でエスケープする必要があり、それを'エスケープしました。=またはで始まるフィールドに使用されます/。これにより、貼り付けるときに余分なスペースができ、問題になりました。修復はとても簡単です。

  2. nobody:x:65534:four_legs:x:155:追加するソースファイルの末尾に改行文字があることを確認すると、問題は完全に消えます。なぜ入力をラインに保持するのではなく、入力を2倍にするのかはわかりませんが、nobody良いです。

  3. CRLFの代わりにLF行末を使用する必要があります。これで、LF行の終わりがあると、他の問題にもっと寛大に見えます。コメントフィールドもうまく機能します。 :-)

関連情報