User IDgroup ID

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

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

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "os/user"
  6. )
  7. func main() {
  8. fmt.Println("User id:", os.Getuid())

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

ids.go第二部分代码如下:

  1. var u *user.User
  2. u, _ = user.Current()
  3. fmt.Print("Group ids: ")
  4. groupIDs, _ := u.GroupIds()
  5. for _, i := range groupIDs {
  6. fmt.Print(i, " ")
  7. }
  8. fmt.Println()
  9. }

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

执行ids.go输出如下:

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