我在Linux机器上创建了一个组。现在我正在尝试调用os.Chown
将文件的所有权更改为该新组。
os.Chown
要求我了解uid
和gid
:
func Chown(name string, uid, gid int) error
如何为我的小组获取gid
?我尝试使用user.Lookup("groupname")
,但我收到了“未知用户组名”
我可以调用os.Getgroups
,但这只返回一组组ID - 它没有告诉我任何关于组名和组ID之间的映射的信息。
我猜我有一个可以解决的Unix实用程序(解析调用id
的结果)但是如果我能帮助它,我宁愿不这样做。
答案 0 :(得分:4)
更新:截至2016年8月16日,Go 1.7发布,支持LookupGroup。如果要访问有关POSIX组的信息,建议升级到Go 1.7。
Go 1.7测试版中有一个LookupGroup函数,但它仅在今年2月添加,并且不在Go的任何发布版本中,所以你有点不走运。
据我所知,你的选择是:
getgrnam
以获取所需信息(棘手)/etc/group
(相对容易......只要您能保证您需要的信息实际上来自该文件而不是LDAP或其他内容)。