既存のファイル/ディレクトリの権限と生成するファイル/ディレクトリの権限を比較します。

既存のファイル/ディレクトリの権限と生成するファイル/ディレクトリの権限を比較します。

システムコールを使用して、いくつかの名前とモードパラメータを使用してファイルまたはディレクトリを作成します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機能がないと思うので、読者の練習問題として残しておきます。

おすすめ記事