我試圖使用GetEffectiveRightsFromAcl
來做到這一點,但它沒有返回正確的訪問掩碼,因爲我所屬的組拒絕了我的文件。如何正確檢查使用Windows API對文件的有效讀/寫訪問?
例如,我有一個文件,unreadable.txt
。如果我拒絕對當前用戶的寫訪問unreadable.txt
,訪問掩碼正確顯示我沒有寫訪問權限。但是,如果我拒絕「Authenticated Users」組的寫入權限,則訪問掩碼意味着我擁有完全訪問權限(我不這麼做)。
我的選擇是手動迭代Ace列表並比較我的SID與每個條目,但我無法找到一個乾淨或簡單的方法來檢查Ace是否適用於一個組,並且如果當前用戶是部分該組。
作爲擴展名,該文件可能不存在(即,它是一個新文件,即將被寫入),在這種情況下,需要檢查對該目錄的訪問。
有沒有什麼好的解決方案呢?似乎應該有一個更簡單的方法來做到這一點,而不是實際嘗試讀取/寫入有問題的文件。
如果有其他權限/ ACL被覆蓋,那麼拒絕一個組不會非必然地拒絕該組的成員。 – Deanna
我在印象之下更具體(用戶權利)覆蓋較不具體(組權利)。但我可能是錯的。 – Deanna