linux - 获取文件的uid和gid
问题描述
在 linux 中,stat
结构包含文件的 UID 和 GID。
有没有办法使用 Go(lang) 获取文件的相同信息(UID 和 GID)?
解决方案
我想出了一个合理的方法来做到这一点。
import (
"syscall"
"os"
)
info, _ := os.Stat("/path/to/the/file")
var UID int
var GID int
if stat, ok := info.Sys().(*syscall.Stat_t); ok {
UID = int(stat.Uid)
GID = int(stat.Gid)
} else {
// we are not in linux, this won't work anyway in windows,
// but maybe you want to log warnings
UID = os.Getuid()
GID = os.Getgid()
}
推荐阅读
- flutter - 使用内置值解析嵌套 JSON 时出错
- angular - Angular - 如何从另一个组件调用组件中的模态?
- java - 猜谜游戏 - JButton doClick 不起作用?
- html - 如何使文本层仅在离开窗口边框不超过 5% 后才缩小?
- java - 在java中查找子字符串时字符串索引超出范围异常
- python - 不能 uJson'd 的最小 Python 对象
- javascript - 单击影响 ios Safari 和 chrome 中其他元素悬停区域的项目
- ruby-on-rails - Rails 中的 Redis 密钥到期挂钩/通知
- cobol - COBOL's EVALUATE without WHEN OTHER:在什么情况下应用会崩溃?
- c# - 无法显示文件。asp.net核心