是否可以在Windows上获取文件的UID(所有者)?我尝试使用FileInfo.Sys()
,但它只适用于Linux。我真的很难过这个,并且无法弄清楚如何获得UID。
答案 0 :(得分:2)
第一个问题是,Windows支持文件/目录所有权的原生文件系统没有“所有者UID”的概念,因为Windows用户也没有UID。
使用所谓的“访问控制列表”(ACL)实现Windows NT行或内核的安全性,并使用所谓的“安全标识符”(SID)标识安全主体(例如用户) 。 SID is a variable-length multi-field data structure通常作为字节数组传递。
另一个复杂因素是启用ACL的Windows文件系统上的文件可能根本没有所有者(并且没有附加ACL);这是罕见但可能的。
所以......如果说明“在Windows文件系统中没有条目所有者的UID这样的东西”的解释部分对你来说还可以,那就完全可以了。
如果没有,您实际上想问“如何获取Windows文件系统上的条目的安全信息?”,问题变得更加复杂。 Go附带的库存标准库AFAIK没有围绕Win32 API相关位的必要包装。所以要实现这个,你需要自己包装它们(毕竟不是那么难)或者试着找一个帮助包。