【问题标题】:Go (golang), file uid on windowsGo(golang),windows上的文件uid
【发布时间】:2016-12-14 21:22:04
【问题描述】:

是否可以在 Windows 上获取文件的 UID(所有者)?我尝试使用FileInfo.Sys(),但它只适用于 Linux。我真的被这个难住了,不知道如何获取 UID。

【问题讨论】:

标签: windows file go operating-system


【解决方案1】:

第一个问题是支持文件/目录所有权的 Windows 原生文件系统没有“所有者 UID”的概念,因为 Windows 用户也没有 UID。

Windows NT 行或内核的安全性使用所谓的“访问控制列表”(ACL) 来实现,而安全主体(例如用户)使用所谓的“安全标识符”(SID) 来标识. SID is a variable-length multi-field data structure 通常作为字节数组传递。

另一个复杂情况是启用 ACL 的 Windows 文件系统上的文件可能根本没有所有者(也没有附加 ACL);这种情况很少见,但有可能。

所以...如果说明“在 Windows 文件系统上不存在条目所有者的 UID 之类的东西”的部分解释对您来说是可以接受的,这就是它的全部内容。

如果不是,并且您实际上想问“如何获取 Windows 文件系统上的条目的安全信息?”,那么问题就变得更加复杂了。 AFAIK 随 Go 一起提供的标准库没有围绕 Win32 API 的相关位的必要包装器。因此,要实现这一点,您需要自己包装它们(毕竟这并不难)或尝试找到一个辅助包。

【讨论】:

    猜你喜欢
    • 2015-11-08
    • 2017-12-07
    • 1970-01-01
    • 2022-06-10
    • 2016-08-23
    • 2021-12-08
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    相关资源
    最近更新 更多