2

私のアプリケーションは基本的な ACL を作成し、これをカーネル モジュールに伝えます。ACL には、UID/GID のリストが含まれています。これらの ID のチェックはカスタムであり、システムが既に提供しているものに加えて行われます。

root/ユーザーが UID/GID を変更した場合、ACL を更新する必要があります。コマンドなどで UID/GID が変更されるたびに、アプリケーションで通知を受け取る方法はありusermodますか? 現在、プラットフォームは Linux ですが、これを他のプラットフォーム (AIX/Solaris) にも移植する可能性があります。

4

4 に答える 4

1

特にクロスプラットフォームの場合、UID/ユーザー名のマッピングの変更を確実に検出する方法はないと思います。ユーザーデータベースは、NIS、NIS +、または現在のLDAPに存在する場合があります。UNIX /LinuxシステムをActiveDirectoryを実行しているWindowsServerと統合している場合もあれば、Hesoidのようなもっとわかりにくいものを使用している場合もあります。これらのさまざまなデータベースから自動フィードバックを受け取る方法がありません。しかしまた、UNIX管理に関する優れた本では、これらのマッピングを変更しないように、または少なくとも、必要な場合はUIDを再利用しないように指示しています。ファイルシステムは、標準のPOSIXアクセス許可を使用しているかPOSIX ACLを使用しているかにかかわらず、管理者がユーザーのUIDを変更することを決定した場合に更新を取得しないUIDも格納することを忘れないでください。カーネルとファイルシステムはどちらも、ユーザー名に関係なく、特定のUIDを特定のユーザーとして扱います。管理者がユーザーのUIDを変更する場合は、気にする必要はないと思います。誰にとってもエラーが発生しやすい可能性があります。

また、Windows上のNTFSをざっと見ると、SIDと呼ばれるUIDに相当するものも格納されていることがわかります。これはユーザーを表すために使用される長い数値であり、WindowsはそのSIDのマッピングを変更することを提供または期待していません。特定のユーザー名に。SIDは、ユーザー名ではなく、NTカーネルが内部で使用するものです。ファイルの[セキュリティ]タブを開くと、WindowsがActive Directoryコントローラーにクエリを実行し、それらの番号に便利なユーザー名を指定できるようになるまで、ほんの一瞬番号が表示される場合があります。最終的に、ユーザーを一意に識別するのはユーザー名ではなく、SIDです。

于 2011-04-02T07:15:17.583 に答える
1

Linux では、inotifyが必要なことを行います。他のシステムでは、FAMを試してください。

于 2011-03-14T07:10:15.487 に答える
0

考えられる方法の 1 つ (Frédéric の返信から引き出されたもの) は、/etc/passwd で inotify/(古いカーネルの場合は dnotify Gasp!) 操作を設定できる可能性があるというものです。そのファイルは、少なくともローカル ユーザー権限の変更に対して常に変更されるためです。問題は、NIS 環境でこれを行う方法です。

于 2011-03-15T12:07:47.367 に答える
0

典型的な Unix セキュリティ モデルでは、人間が読める文字列と数値の間のマッピングではなく、GID/UID の数値のみを気にする必要があります。そのように思えますが、何を達成しようとしているのかを慎重に検討しましたか? ID だけでなく、名前または名前/ID タプルを渡すほうがよいのではないでしょうか?

于 2011-04-02T09:44:47.160 に答える