在 Golang 语言中使用 os/user
包可以获取当前机器的用户信息。
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 package mainimport ( "fmt" "os/user" ) func handleErr (err error) { if err != nil { fmt.Println(err) } } func main () { u, err := user.Current() handleErr(err) fmt.Println("当前用户" ) fmt.Printf("Gid %s\n" , u.Gid) fmt.Printf("Uid %s\n" , u.Uid) fmt.Printf("Username %s\n" , u.Username) fmt.Printf("Name %s\n" , u.Name) fmt.Printf("HomeDir %s\n" , u.HomeDir) fmt.Println("" ) // 当前用户 // Gid 20 // Uid 501 // Username wxnacy // Name wxnacy // HomeDir /Users/wxnacy }
User 结构体
1 2 3 4 5 6 7 type User struct { Uid string // 用户的 ID Gid string // 用户所属组的 ID,如果属于多个组,那么此 ID 为主组的 ID Username string // 用户名 Name string // 属组名称,如果属于多个组,那么此名称为主组的名称 HomeDir string // 用户的宿主目录 }
当前用户
1 func Current () (*User, error)
通过 Uid 获取用户
1 func LookupId (uid string ) (*User, error)
通过 Username 获取用户
1 func Lookup (username string ) (*User, error)
验证代码地址:https://github.com/wxnacy/study/blob/master/goland/src/simple/os_user.go