【问题标题】:Why the primary group of Local Administrators appears as Domain Users {S-1-5-21-<domain>-513}为什么本地管理员的主要组显示为域用户 {S-1-5-21-<域>-513}
【发布时间】: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

编辑:
当我检查 GUI 时,它显示了两个组:

【问题讨论】:

  • 好的,所以你说与本地管理员关联的主要组是域用户。您说,当您在本地管理员拥有的文件上运行该函数时,它会告诉您(通过安全标识符)该文件的所有者是本地管理员,并且相应的组是域用户。 这不是应该发生的事情?您原本期望会发生什么,为什么?
  • 无论如何,据我所知,问题纯粹是关于 Windows 如何传达这些信息,而不是关于用于检索它的代码。请改用superuser.com
  • 因为当我查看群组时,我只有两个群组AdministratorsSYSTEM
  • thissid (with 513 rid) 也存在于工作站中,这里它命名为 None。该组中的所有用户
  • 您可能想看看this 问题,而不是在超级用户上询问编程问题。

标签: c# windows acl fileinfo group


【解决方案1】:

我对这些术语感到困惑。

GetGroup 函数according to Microsoft

Gets the primary group associated with the specified owner.

GetOwner 函数according to Microsoft

Gets the owner associated with the specified primary group.

所以看来这个问题没有任何问题。
只需要了解函数的含义。
例如,GetGroup 获取与指定所有者关联的主要组

因此,如果所有者是例如本地管理员,那么所有者将是SYSTEM,您将获得:

Group: SYSTEM   {S-1-5-18}  
Owner: Built In Administrators: {S-1-5-32-544}  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多