问题描述
在Windows下,Git(MINGW64)为文件分配默认组:197121(PS:如果在Internet上搜索此编号,您会发现大多数问题都与Git有关)。我想知道这个组(或数字)是否有意义?
ls - al
drwxr-xr-x 1 Zhang 197121 0 August 18 09:46 file.txt
解决方法
这是“无”组。
如this thread
当您向Windows GUI询问文件的ACL时, 它知道向谁索取SID。反正就是一个SID (内置,SAM,AD),或询问共享的基础服务器。
但是,Cygwin中的帐户处理与代码分离了 提取文件ACL。它通常只关心passwd和group 条目,并且它只知道向SAM或AD请求SID。它没有 与服务共享的服务器的连接。 可能是可能的, 但是代码还不存在。
Eryk Sun添加到the comments中:
如何将“ S-1-5-21--513”(无)映射到GID值197121:
Group=S-1-5-21-XXX-513(WINDOWS\None) (gid=197121)
十六进制值
0x30201
提供了一些见识,因为0x201
是513
,但我不知道0x30
的来源。
知道Windows中大多数用户的访问令牌会将“None
”设置为新对象(即TokenPrimaryGroup
)的默认组也有帮助。Windows访问检查不直接使用对象的组(与Cygwin不同),但是如果对象的父容器具有“
CREATOR GROUP
”的可继承条目,则该组的条目将添加到对象的DACL中(S-1-3-1
)。等于
0x0201
的下半部分解释为组“DOMAIN_GROUP_RID_USERS
”(如果计算机连接到域,则称为“None
”)的RID值Domain Users
),假设它们仅使用32位RID值的低16位,但是我仍然很好奇0x30201
中开头的3来自何处。
同样,对于第一个分配的用户SID“S-1-5-21-<MACHINE ID>-1001
”,Cygwin UID为0x303E9
,其前导0x3
相同。
另请参阅“ How to use native "Active Directory Services Interface" (ADSI) components to find the primary group”:
用户的主要组(作为用户域中组的RID)存储在用户对象的
PrimaryGroupID
属性上。用户的主要组只能是与该用户位于同一域中的组,并且该组必须是该用户所属的组。
此外,Active Directory中的该组对象具有一个名为
PrimaryGroupToken
的属性,该属性在域中存储该组的RID。
This thread添加:
整数513是“
primaryGroupToken
”组的Domain Users
属性的值。primaryGroupID
为513的所有用户都将此组指定为其主要用户。
这与security identifiers有关,如seen here:
SID
S-1-5-domain-513
显示名称
域用户
说明
包含域中所有用户的全局组。
当您在Active Directory中创建新的User对象时,该用户会自动添加到该组中。
Cygwin id 197121 == RID 513 == 0x201-在保留的RID