2011-09-22 30 views
2

在Windows中,我有一個應用程序需要將訪問控制權限設置爲用戶/組「每個人」。並將權限設置爲只讀。在Linux下,使用八進制004權限調用簡單的open()就足夠了。在Windows上,我該如何完成同樣的事情?最好在致電CreateFile()在CreateFile()中,爲標準用戶Everybody分配只讀權限的最快捷方式是什麼?並沒有權限給其他人

+0

是否有任何理由不使用只讀屬性? – Gabe

+0

你想保護什麼對象?我無法從你的問題中辨別出這一點? –

+0

Gabe這是一個備份應用程序;我需要確保這些文件是世界可讀的,並且不與任何特定用戶相關聯。寫保護以增加安全性。 @大衛我試圖保護NTFS捲上的標準文件。 – unixman83

回答

1

使用正確的屬性創建一個SECURITY_DESCRIPTOR。從那裏鏈接的函數是創建適當的安全描述符的一個很好的起點(這遠不是微不足道的)。 This page展示了一個很好的創建示例,包括如何獲取「Everybody」組(代碼中的pEveryoneSID)的SID。

然後,只需將該安全描述符傳遞給CreateFile作爲lpSecurityAttributes參數。

+0

我想這是一個很好的起點。感謝您的鏈接。 – unixman83

+1

我建議使用ATL包裝:CSid,CAcl,CDacl,CSacl,CSecurityDesc,CSecurityAttributes。代碼將會更清潔。 –

相關問題