削除されたグループはLinuxのデフォルトグループを介して機能し続けることができますか?

削除されたグループはLinuxのデフォルトグループを介して機能し続けることができますか?

私が構築した分析プログラムを使用しながら、ユーザーがデフォルトグループを削除されたグループ(/etc/groupファイルにはなくなりました)に設定するバグに遭遇しました。影響の範囲を確認するためにいくつかのテストを実行した結果、奇妙な動作が発生しました。

  • グループが削除されても、そのグループがユーザーの基本グループであり、その ID に関連付けられた権限が sudoers ファイルに存在する場合、ユーザーはその権限を引き続き取得します。
  • 後でグループが作成されると、以前に削除したグループと同じグループIDが取得され、ユーザーのデフォルトIDがそのグループになります。

sudoersで権限を確認するときは、/ etc / groupファイルとユーザーのデフォルトグループを別々に検索するようですが、デフォルトグループは実際のグループである必要はありませんか?

質問: そうですか?私は何を見逃していますか?クライアントがデフォルトグループを削除した理由はわかりませんが、間違っているようです。

機器仕様:

Linux Ubuntu 20.04.1

5.13.0-1017-空色x86_64

再現段階:

  1. 新規ユーザーの作成:sudo useradd testuser ユーザーとデフォルトグループと同じ名前の別々の新しいグループが作成されます。

  2. 新しいユーザーグループを確認しています。groups testuser 結果:「testuser:testuser」

  3. コマンドで新しいグループを削除する:sudo groupdel testuser 次のエラー メッセージを受け取りました: groupdel: 'testuser' ユーザーの既定のグループを削除できません。

  4. 手動ファイル調整を使用して新しいグループを削除する:sudo nano /etc/group 関連グループの最後の行を削除してファイルを保存できるため、機能します。

  5. 新しいユーザーのグループを再確認しました。groups testuser 結果: "testuser:group: グループ ID 1003 1003 の名前が見つかりません。"

  6. 新しいユーザーとしてログインしてみてください。グループを正常に削除した後でもログインできます。

  7. 新しいユーザーを使用して sudo コマンドを実行しようとすると、期待どおりに失敗します。 'testuserがsudoersファイルにありません。今回の事件は報道されるだろう」

  8. 特権アカウント(Sudo権限を含む)として再度ログインする

  9. 手順4で削除したグループ名に、sudoersファイルのsudoer権限を付与します。sudo nano /etc/sudoers 次にそれをファイルに追加します。 %testuser ALL=(ALL:ALL) ALL

  10. 新しいユーザーとしてログインし、sudoコマンドを再実行しても失敗します。 'testuserがsudoersファイルにありません。今回の事件は報道されるだろう」

  11. 手順4で削除したグループIDに、sudoersファイルのsudoer権限を付与します。sudo nano /etc/sudoers 次にそれをファイルに追加します。 %#1003 ALL=(ALL:ALL) ALL

  12. 新しいユーザーとしてログインし、sudoコマンドを再度正常に実行すると、ユーザーはSUDO権限を持つようになります。 (本当にそうではないことを願っています。)

  13. 新しいグループを作成する:sudo groupadd testforid ID 1003で新しいグループを作成します。

  14. 新しいユーザーグループをもう一度確認してください。groups testuser 結果: 'testuser : testforid'

ベストアンサー1

はい、「削除された」グループはまだ基本グループとして機能します。実際に作成されていないグループはデフォルトグループとして機能します。

最終的に、ユーザーとグループにとって最も重要なのは識別子だからです。ユーザーと基本グループ間のマッピング、例えばでは/etc/passwd識別子を連結します。あなたの例では、testuserデフォルトグループ1003が割り当てられます。あなたの場合、グループに名前があるかどうかは/etc/group問題ではありません。グループ 1003sudo権限を付与すると、testuserその権限はそのグループを通じて付与されます。

ユーザー名と識別子は同じ規則に従います。つまり、最終的に重要なのはユーザー識別子です。特定のユーザーが所有するファイルは、名前ではなく識別子でそのユーザーに関連付けられ、ユーザーが削除されても接続は維持されます。システムのユーザーと一致しないユーザー識別子を使用してファイルを生成することも可能です。

複数のユーザー名とグループ名をそれぞれ同じユーザーとグループIDに関連付けることもできます。マッピングはせん断史的である必要はありません。したがって、権限などはユーザー/グループ識別子の観点から定義でき、これらの識別子にはゼロ個以上の名前を付けることができます。

おすすめ記事