package user

import "os/user"

Package user 允许按名称或 id 查找用户账户。

对于大多数 Unix 系统,本包有两个用于将用户和组 id 解析为名称、 以及列出附加组 ID 的内部实现。一个是纯 Go 编写的,解析 /etc/passwd 和 /etc/group。另一个基于 cgo,依赖于标准 C 库(libc) 的例程,例如 getpwuid_r、getgrnam_r 和 getgrouplist。

当 cgo 可用,且所需例程在特定平台上已由 libc 实现时, 会使用基于 cgo(由 libc 支持)的代码。 这可以通过使用 osusergo 构建标签来覆盖,该标签会强制 使用纯 Go 实现。

Index

Types

type Group

type Group struct {
	Gid  string // 组 ID
	Name string // 组名
}

Group 表示一组用户的集合。

在 POSIX 系统上,Gid 包含一个表示组 ID 的十进制数。

func LookupGroup
func LookupGroup(name string) (*Group, error)

LookupGroup 按名称查找组。如果找不到该组, 返回的错误类型为 UnknownGroupError。

func LookupGroupId
func LookupGroupId(gid string) (*Group, error)

LookupGroupId 按 groupid 查找组。如果找不到该组, 返回的错误类型为 UnknownGroupIdError。

type UnknownGroupError

type UnknownGroupError string

UnknownGroupError 在找不到组时由 LookupGroup 返回。

func (UnknownGroupError) Error
func (e UnknownGroupError) Error() string

type UnknownGroupIdError

type UnknownGroupIdError string

UnknownGroupIdError 在找不到组时由 LookupGroupId 返回。

func (UnknownGroupIdError) Error
func (e UnknownGroupIdError) Error() string

type UnknownUserError

type UnknownUserError string

UnknownUserError 在找不到用户时由 Lookup 返回。

func (UnknownUserError) Error
func (e UnknownUserError) Error() string

type UnknownUserIdError

type UnknownUserIdError int

UnknownUserIdError 在找不到用户时由 LookupId 返回。

func (UnknownUserIdError) Error
func (e UnknownUserIdError) Error() string

type User

type User struct {
	// Uid 是用户 ID。
	// 在 POSIX 系统上,这是一个表示 uid 的十进制数。
	// 在 Windows 上,这是一个字符串格式的安全标识符(SID)。
	// 在 Plan 9 上,这是 /dev/user 的内容。
	Uid string
	// Gid 是主组 ID。
	// 在 POSIX 系统上,这是一个表示 gid 的十进制数。
	// 在 Windows 上,这是一个字符串格式的 SID。
	// 在 Plan 9 上,这是 /dev/user 的内容。
	Gid string
	// Username 是登录名。
	Username string
	// Name 是用户的真实姓名或显示名称。
	// 它可能为空。
	// 在 POSIX 系统上,这是 GECOS 字段列表中的第一个(或唯一一个)条目。
	// 在 Windows 上,这是用户的显示名称。
	// 在 Plan 9 上,这是 /dev/user 的内容。
	Name string
	// HomeDir 是用户主目录的路径(如果用户有主目录的话)。
	HomeDir string
}

User 表示一个用户账户。

func Current
func Current() (*User, error)

Current 返回当前用户。

首次调用会缓存当前用户信息。 后续调用会返回缓存的值,不会反映当前用户的更改。

func Lookup
func Lookup(username string) (*User, error)

Lookup 按用户名查找用户。如果找不到该用户, 返回的错误类型为 UnknownUserError。

func LookupId
func LookupId(uid string) (*User, error)

LookupId 按 userid 查找用户。如果找不到该用户, 返回的错误类型为 UnknownUserIdError。

func (*User) GroupIds
func (u *User) GroupIds() ([]string, error)

GroupIds 返回该用户所属的组 ID 列表。