私が構築した分析プログラムを使用しながら、ユーザーがデフォルトグループを削除されたグループ(/etc/groupファイルにはなくなりました)に設定するバグに遭遇しました。影響の範囲を確認するためにいくつかのテストを実行した結果、奇妙な動作が発生しました。
- グループが削除されても、そのグループがユーザーの基本グループであり、その ID に関連付けられた権限が sudoers ファイルに存在する場合、ユーザーはその権限を引き続き取得します。
- 後でグループが作成されると、以前に削除したグループと同じグループIDが取得され、ユーザーのデフォルトIDがそのグループになります。
sudoersで権限を確認するときは、/ etc / groupファイルとユーザーのデフォルトグループを別々に検索するようですが、デフォルトグループは実際のグループである必要はありませんか?
質問: そうですか?私は何を見逃していますか?クライアントがデフォルトグループを削除した理由はわかりませんが、間違っているようです。
機器仕様:
Linux Ubuntu 20.04.1
5.13.0-1017-空色x86_64
再現段階:
新規ユーザーの作成:
sudo useradd testuser
ユーザーとデフォルトグループと同じ名前の別々の新しいグループが作成されます。新しいユーザーグループを確認しています。
groups testuser
結果:「testuser:testuser」コマンドで新しいグループを削除する:
sudo groupdel testuser
次のエラー メッセージを受け取りました: groupdel: 'testuser' ユーザーの既定のグループを削除できません。手動ファイル調整を使用して新しいグループを削除する:
sudo nano /etc/group
関連グループの最後の行を削除してファイルを保存できるため、機能します。新しいユーザーのグループを再確認しました。
groups testuser
結果: "testuser:group: グループ ID 1003 1003 の名前が見つかりません。"新しいユーザーとしてログインしてみてください。グループを正常に削除した後でもログインできます。
新しいユーザーを使用して sudo コマンドを実行しようとすると、期待どおりに失敗します。 'testuserがsudoersファイルにありません。今回の事件は報道されるだろう」
特権アカウント(Sudo権限を含む)として再度ログインする
手順4で削除したグループ名に、sudoersファイルのsudoer権限を付与します。
sudo nano /etc/sudoers
次にそれをファイルに追加します。%testuser ALL=(ALL:ALL) ALL
新しいユーザーとしてログインし、sudoコマンドを再実行しても失敗します。 'testuserがsudoersファイルにありません。今回の事件は報道されるだろう」
手順4で削除したグループIDに、sudoersファイルのsudoer権限を付与します。
sudo nano /etc/sudoers
次にそれをファイルに追加します。%#1003 ALL=(ALL:ALL) ALL
新しいユーザーとしてログインし、sudoコマンドを再度正常に実行すると、ユーザーはSUDO権限を持つようになります。 (本当にそうではないことを願っています。)
新しいグループを作成する:
sudo groupadd testforid
ID 1003で新しいグループを作成します。新しいユーザーグループをもう一度確認してください。
groups testuser
結果: 'testuser : testforid'
ベストアンサー1
はい、「削除された」グループはまだ基本グループとして機能します。実際に作成されていないグループはデフォルトグループとして機能します。
最終的に、ユーザーとグループにとって最も重要なのは識別子だからです。ユーザーと基本グループ間のマッピング、例えばでは/etc/passwd
識別子を連結します。あなたの例では、testuser
デフォルトグループ1003が割り当てられます。あなたの場合、グループに名前があるかどうかは/etc/group
問題ではありません。グループ 1003sudo
権限を付与すると、testuser
その権限はそのグループを通じて付与されます。
ユーザー名と識別子は同じ規則に従います。つまり、最終的に重要なのはユーザー識別子です。特定のユーザーが所有するファイルは、名前ではなく識別子でそのユーザーに関連付けられ、ユーザーが削除されても接続は維持されます。システムのユーザーと一致しないユーザー識別子を使用してファイルを生成することも可能です。
複数のユーザー名とグループ名をそれぞれ同じユーザーとグループIDに関連付けることもできます。マッピングはせん断史的である必要はありません。したがって、権限などはユーザー/グループ識別子の観点から定義でき、これらの識別子にはゼロ個以上の名前を付けることができます。