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