我需要为文件设置权限,以便系统上的所有用户都可以读取和写入文件。这与安装程序有关,因此我不知道用户名。安装程序以管理员身份运行,因此日志文件之后需要管理员访问权限。因此,我需要在安装期间明确设置权限,以便引用程序不需要以管理员身份运行。
从本质上讲,我正在寻找能够在Windows中为我提供相当于chmod777的解决方案。
我更喜欢适用于Win7和WinXP的解决方案。我想要一个通过命令行的解决方案,然后我可以编写脚本。或者使用C#或java的解决方案。
答案 0 :(得分:7)
所有现代Windows操作系统都有一个名为“Everyone”的内置组,它相当于UNIX“其他”权限。即使未登录的用户也是Everyone组的一部分。从那里你可以给“Everyone”读取,写入和修改(“更改”)权限。你可以,如果你完全疯了,给每个人“完全控制”,但这实际上允许他们取得所有权并更改权限,所以请不要那样做:)
要实际应用这些权限,您可以使用多种技术
cacls <file name> /g Everyone:RWC
WellKnownSidType.WorldSid
为NT帐户创建ACL,然后将其应用于文件,如本文所述:http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/c513ca26-9bf8-4e39-a993-4ebf90aaece6/ 答案 1 :(得分:0)
在C#中,您可以获取NTAccount对象,并获取文件的FileSecurity对象,并使用FileSecurity对象的AddAccessRule方法来设置权限。
有关详细说明,请参阅下面的MSDN论坛帖子。