我需要對文件設置權限,以便系統上的所有用戶都可以讀寫它。這與安裝程序有關,所以我不提前知道用戶名。安裝程序以admin身份運行,因此日誌文件需要管理員權限。所以我需要在安裝過程中明確設置權限,以便引用程序不需要以管理員身份運行。需要Windows chmod777等效
從本質上講,我正在尋找一種解決方案,可以給我在Windows中相當於chmod777。
我寧願一個適用於Win7和WinXP的解決方案。我想通過命令行解決方案,然後我可以編寫腳本。或者使用C#或java的解決方案。
我需要對文件設置權限,以便系統上的所有用戶都可以讀寫它。這與安裝程序有關,所以我不提前知道用戶名。安裝程序以admin身份運行,因此日誌文件需要管理員權限。所以我需要在安裝過程中明確設置權限,以便引用程序不需要以管理員身份運行。需要Windows chmod777等效
從本質上講,我正在尋找一種解決方案,可以給我在Windows中相當於chmod777。
我寧願一個適用於Win7和WinXP的解決方案。我想通過命令行解決方案,然後我可以編寫腳本。或者使用C#或java的解決方案。
所有現代的Windows操作系統的有一個名爲「大家」一個內置的組是UNIX「其他」的權限等同。即使未登錄的用戶也是Everyone組的一部分。從那裏你可以給「每個人」讀,寫,修改(「更改」)權限。你可以,如果你是完全瘋了,給大家「完全控制」,但實際上允許他們採取所有權和更改權限,所以請不這樣做:)
要實際應用這些權限可以使用許多技術
cacls <file name> /g Everyone:RWC
WellKnownSidType.WorldSid
然後將其應用到文件,在這篇文章中: http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/c513ca26-9bf8-4e39-a993-4ebf90aaece6/請注意,其他更具體的組可能也適用於此; 「用戶」將包括登錄(但不是匿名)的每個人,這些人應該覆蓋任何能夠運行應用程序的人。 – 2012-07-11 18:40:23
太棒了。我要試試這個。我看到了針對Win7的icacls,並注意到了XP的cacls。我會測試看看我是否可以使用cacls。如果是這樣,我應該很好,並會接受解決方案。 – 2012-07-11 18:41:44
將在午餐後測試:) – 2012-07-11 18:43:58
在C#中,可以獲取NTAccount對象,並獲取文件的FileSecurity對象,並使用FileSecurity對象的AddAccessRule方法設置權限。
有關更多詳細說明,請參閱下面的MSDN論壇帖子。
Windows 7將需要管理員權限。 – user7116 2012-07-11 18:28:59
Windows應用程序不應該要求全局讀/寫程序文件中的文件。 – user7116 2012-07-11 18:22:32
我同意@sixlettervariables。你爲什麼不把文件存儲在'ProgramData'(又名'All Users \ Application Data')中? – Dai 2012-07-11 18:23:24
你有什麼嘗試?設置windows文件權限c#的快速谷歌提供了大量的關於如何做到這一點的鏈接。 – Brian 2012-07-11 18:26:28