08.20 User ID和group ID

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

程序名为ids.go,分为两部分。第一部分代码如下:

package main
import (
"fmt"
"os"
"os/user"
)
func main() {
fmt.Println("User id:", os.Getuid())

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

ids.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