システムコールを使用して、いくつかの名前とモードパラメータを使用してファイルまたはディレクトリを作成しますEEXIST
。
umask
現在、、、およびeuid
を知っていると仮定すると、egid
既存のファイル/ディレクトリに操作が成功した場合にシステムコールが生成するのと同じ権限があるかどうかをどうやって知ることができますか?
AFAIK、クラシック権限の場合、答えはtrue
.st_gid == egid && .st_uid == euid && (.st_mode & 07777) == (RequestedMode & 07777 & ~CurrentUmask)
で、見つかった/予想されるファイル形式が一致する場合です。
アクセス制御リストを含むシステムにどのように拡張しますか?
ベストアンサー1
これをACLに拡張するには、次のように呼び出します。acl_get_file
ファイルを生成したパスを使用し、ACL_TYPE_DEFAULT
そのディレクトリのデフォルトのACLを要求します。 ACLがある場合は、生成したいファイルにデフォルトでACLが適用されます。
次に、acl_get_file
既存のファイルを使用してACL_TYPE_ACCESS
ファイルの実際のACLを取得します。
ACLを比較するACL機能がないと思うので、読者の練習問題として残しておきます。