【发布时间】:2022-02-03 11:26:27
【问题描述】:
我有一个文本文件,本地管理员是该文件的所有者。
当我运行以下代码时:
public static void CheckPermissions(string filePath)
{
FileSecurity acl = new FileInfo(filePath).GetAccessControl();
IdentityReference group = acl.GetGroup(typeof(SecurityIdentifier));
IdentityReference owner = acl.GetOwner(typeof(SecurityIdentifier));
}
它显示:
group = {S-1-5-21-<domain>-513} // DOMAIN_USERS group
owner = {S-1-5-21-<domain>-500} // Local Administrator
GetGroup 函数according to Microsoft:
获取与指定所有者关联的主要组。
但是与本地管理员关联的主要组是Domain Users?
【问题讨论】:
-
好的,所以你说与本地管理员关联的主要组是域用户。您说,当您在本地管理员拥有的文件上运行该函数时,它会告诉您(通过安全标识符)该文件的所有者是本地管理员,并且相应的组是域用户。 这不是应该发生的事情?您原本期望会发生什么,为什么?
-
无论如何,据我所知,问题纯粹是关于 Windows 如何传达这些信息,而不是关于用于检索它的代码。请改用superuser.com。
-
因为当我查看群组时,我只有两个群组
Administrators和SYSTEM。 -
thissid (with 513 rid) 也存在于工作站中,这里它命名为 None。该组中的所有用户
-
您可能想看看this 问题,而不是在超级用户上询问编程问题。
标签: c# windows acl fileinfo group