同じ名前でGIDが異なる2つのグループを持つことは有効ですか?

同じ名前でGIDが異なる2つのグループを持つことは有効ですか?

今日、私のcentosシステムに「乗客」Webサーバーをインストールするときに奇妙な問題が発生しました。

サーバーは、現在ユーザーグループを使用しようとしても、自分が作成するディレクトリにGIDを設定できません。エラーは次のとおりです。

"/tmp/passenger.spawn.XXXX6rOcmE/envdump" ディレクトリの UID を 1005 に、GID を 100 に変更できません: 操作は許可されません (errno=1)

いくつかの調査では、次のコマンドに示すように、名前は同じですが、GIDが異なる2つのグループがあるという問題があることがわかりました。

$ getent group | grep users
users:x:100:
users:*:1001:asdf,sdafsdf,zzzz

2つのグループのうちの1つの名前を変更した後、問題は解決されました。

だから私の質問は:仕様に従って同じ名前を持つ同じシステムに2つのグループを持つことが有効ですか?

その理由は、それがうまくいけばこのイベントを処理できないため、乗客にバグレポートを送信する予定です。

ベストアンサー1

規範を忘れて、実際に何が起こるのか考えてみてください。注意すべき主な点はファイルシステム権限です。いいえグループ名を含み、整数グループのみを含みます。ID。 (下層システムコールはchown()gid_t、パラメータリストに表示されます。 )

したがって、chgrpまたはchownディレクトリグループを変更するために使用されるすべてのツールは、ユーザーが指定した名前で正しいグループIDを見つける必要があります。 2つの名前が同じである場合、どちらが同じ名前を持っているかわかりません。のグループの場合、/etc/group常に最初のグループを取得する可能性が高いです。ユーザーとグループを保存する他の方法では、同じ名前を2回保存できないことがあります。たとえば、その名前が LDAP DN または他の同様の主キーに使用される場合です。

最初の行が機能すると仮定すると、名前付きグループはusersGID 100として識別され、関連ユーザーはasdfグループ1001のメンバーになりますが、グループ100のメンバーになってchgrp失敗します。

おすすめ記事