Go 学习笔记(42)— Go 标准库之 os/user(获取Uid、Gid、Username、Name、HomeDir、查询用户、查询用户组)
生活随笔
收集整理的這篇文章主要介紹了
Go 学习笔记(42)— Go 标准库之 os/user(获取Uid、Gid、Username、Name、HomeDir、查询用户、查询用户组)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 引用說明
import "os/user"
user 包允許通過名稱或 ID 查詢用戶帳戶。
type User struct {Uid string // 用戶IDGid string // 初級組IDUsername stringName stringHomeDir 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 IDName string // group name
}
Group 表示一組用戶
- 在
POSIX系統上,Gid包含一個表示組ID的十進制數;
2. 相關函數
2.1 func Current
func Current() (*User, error)
返回當前用戶。
2.2 func Lookup
func Lookup(username string) (*User, error)
根據用戶名查詢用戶。
2.3 func LookupId
func LookupId(uid string) (*User, error)
根據用戶 id 查詢用戶。
2.4 func LookupGroup
func LookupGroup(name string) (*Group, error)
根據用戶組名稱查詢用戶, 返回用戶組 Group 的對象指針。
2.5 func LookupGroupId
func LookupGroupId(gid string) (*Group, error)
根據用戶組 id 查詢用戶,返回用戶組 Group 的對象指針。
3. 使用示例
package mainimport ("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)}
總結
以上是生活随笔為你收集整理的Go 学习笔记(42)— Go 标准库之 os/user(获取Uid、Gid、Username、Name、HomeDir、查询用户、查询用户组)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乌镇要门票吗
- 下一篇: 求一个死心的微信网名