import "os/user"
user
包允许通过名称或 ID
查询用户帐户。
type User struct {
Uid string // 用户ID
Gid string // 初级组ID
Username string
Name string
HomeDir string
}
User
代表一个用户帐户。
posix
系统中 Uid
和 Gid
字段分别包含代表 uid
和 gid
的十进制数字;windows
系统中 Uid
和 Gid
包含字符串格式的安全标识符( SID
);Plan 9
系统中, Uid
、 Gid
、 Username
和 Name
字段是 /dev/user
的内容;type Group struct {
Gid string // group ID
Name string // group name
}
Group
表示一组用户
POSIX
系统上, Gid
包含一个表示组 ID
的十进制数;func Current() (*User, error)
返回当前用户。
func Lookup(username string) (*User, error)
根据用户名查询用户。
func LookupId(uid string) (*User, error)
根据用户 id
查询用户。
func LookupGroup(name string) (*Group, error)
根据用户组名称查询用户, 返回用户组 Group
的对象指针。
func LookupGroupId(gid string) (*Group, error)
根据用户组 id
查询用户,返回用户组 Group
的对象指针。
package main
import (
"fmt"
"os/user"
)
func main() {
u, err := user.Current()
if err != nil {
fmt.Println("error")
}
fmt.Printf("u.Uid: %s, u.Gid: %s, u.Name: %s, u.HomeDir: %s, u.Username: %s\n",
u.Uid, u.Gid, u.Name, u.HomeDir, u.Username)
lu, err := user.Lookup("wohu")
if err != nil {
fmt.Println("error")
}
fmt.Printf("lu.Uid: %s, lu.Gid: %s, lu.Name: %s, lu.HomeDir: %s, lu.Username: %s\n",
lu.Uid, lu.Gid, lu.Name, lu.HomeDir, lu.Username)
li, err := user.LookupId("1000")
if err != nil {
fmt.Println("error")
}
fmt.Printf("li.Uid: %s, li.Gid: %s, li.Name: %s, li.HomeDir: %s, li.Username: %s\n",
li.Uid, li.Gid, li.Name, li.HomeDir, li.Username)
lg, err := user.LookupGroup("wohu")
if err != nil {
fmt.Println("error")
}
fmt.Printf("lg.Gid: %s, lg.Name: %s\n",
lg.Gid, lg.Name)
lgi, err := user.LookupGroupId("1000")
if err != nil {
fmt.Println("error")
}
fmt.Printf("lgi.Gid: %s, lgi.Name: %s\n",
lgi.Gid, lgi.Name)
}