从SID获取组名称

  • 本文关键字:获取 SID go winapi
  • 更新时间 :
  • 英文 :


我想在os/user中使用LookupGroupId函数,定义如下:

func LookupGroupId(gid string) (*Group, error) {
return lookupGroupId(gid)
}

这里是lookupGroupId的定义:

func lookupGroupId(gid string) (*Group, error) {
sid, err := syscall.StringToSid(gid)
if err != nil {
return nil, err
}
groupname, _, t, err := sid.LookupAccount("")
if err != nil {
return nil, err
}
if t != syscall.SidTypeGroup && t != syscall.SidTypeWellKnownGroup && t != syscall.SidTypeAlias {
return nil, fmt.Errorf("lookupGroupId: should be group account type, not %d", t)
}
return &Group{Name: groupname, Gid: gid}, nil
}

我想运行查找,然后将Name和SID保存在一个变量中,该变量将是Group类型的变量,如下所示:

var userGroup = user.Group{Gid: "", Name: ""}

已经尝试过了,但什么也没发生。这个应用程序甚至不会把它保存在任何地方。

user.LookupGroupId("S-1-5-32-545") // Users group SID

我做错了哪一部分?我已经试过这个代码了:

userGroup, _ = user.LookupGroupId("S-1-5-32-545")

但我得到了这个错误:cannot assign *user.Group to userGroup (type user.Group) in multiple assignment

错误指出您正在返回两个变量,但只有一个变量用于捕获它。

你可以试着这样做,看看是否有效

userGroup, _ := user.LookupGroupId("S-1-5-32-545")

最新更新