> For the complete documentation index, see [llms.txt](https://wskdsgcf.gitbook.io/mastering-go-zh-cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wskdsgcf.gitbook.io/mastering-go-zh-cn/08.0/08.20.md).

# 08.20 User ID和group ID

在本章的最后一节中，你将学习如何查找当前用户的用户`ID`以及当前用户所属的组`ID`。用户`ID`和组`ID`都是保存在`UNIX`系统文件中的正整数。

程序名为`ids.go`，分为两部分。第一部分代码如下：

```go
package main

import (
    "fmt"
    "os"
    "os/user"
)

func main() {
    fmt.Println("User id:", os.Getuid())
```

查找当前用户的用户`ID`与调用`os.Getuid（）`函数一样简单。

`ids.go`第二部分代码如下：

```go
    var u *user.User
    u, _ = user.Current()
    fmt.Print("Group ids: ")
    groupIDs, _ := u.GroupIds()
    for _, i := range groupIDs {
        fmt.Print(i, " ")
    }
    fmt.Println()
}
```

另一方面，查找用户所属的组`ID`是一项更棘手的任务。

执行`ids.go`输出如下：

```
$ go run ids.go
User id: 501
Group ids: 20 701 12 61 79 80 81 98 33 100 204 250 395 398 399
```
