因此,我正在尝试将 BUILTIN\Users 组的权限修改为至少具有修改文件系统访问权限。不幸的是,我尝试使用以下代码会产生未更改的 ACL。
SecurityIdentifier usersSecurityIdentifier = ntAccount.Translate(typeof(SecurityIdentifier)) as SecurityIdentifier;
DirectorySecurity directorySecurity = Directory.GetAccessControl(source.FullName);
FileSystemAccessRule accessRule
= new FileSystemAccessRule(@"BUILTIN\Users", FileSystemRights.FullControl, AccessControlType.Allow);
directorySecurity.ModifyAccessRule(AccessControlModification.Add,
accessRule,
out modified);
Console.WriteLine(modified);
修改后的报告在每种情况下都是正确的,但是当您在文件夹属性中查看权限时,权限不会更新。
我还尝试为使用类似代码但只是 AddAccessRule 而不是修改的目录还没有 ACL 的 SecurityIdentifier 添加访问规则。即使新的 SecurityIdentifier 出现在目录的权限列表中,他们也没有我指定的访问权限。
我正在尝试修改管理员帐户拥有的 Environment.SpecialFolders.CommonApplicationData 中专有目录的访问权限。我也尝试以管理员身份修改 ACL。
有谁知道上面的代码有什么问题,或者有任何资源可以引导我使用本机 .NET 类设置 ACL 的正确方法?