...
Run Format

Source file src/os/user/user.go

Documentation: os/user

  // Copyright 2011 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  /*
  Package user allows user account lookups by name or id.
  
  For most Unix systems, this package has two internal implementations of
  resolving user and group ids to names. One is written in pure Go and
  parses /etc/passwd and /etc/group. The other is cgo-based and relies on
  the standard C library (libc) routines such as getpwuid_r and getgrnam_r.
  
  When cgo is available, cgo-based (libc-backed) code is used by default.
  This can be overriden by using osusergo build tag, which enforces
  the pure Go implementation.
  */
  package user
  
  import (
  	"strconv"
  )
  
  var (
  	userImplemented  = true // set to false by lookup_stubs.go's init
  	groupImplemented = true // set to false by lookup_stubs.go's init
  )
  
  // User represents a user account.
  type User struct {
  	// Uid is the user ID.
  	// On POSIX systems, this is a decimal number representing the uid.
  	// On Windows, this is a security identifier (SID) in a string format.
  	// On Plan 9, this is the contents of /dev/user.
  	Uid string
  	// Gid is the primary group ID.
  	// On POSIX systems, this is a decimal number representing the gid.
  	// On Windows, this is a SID in a string format.
  	// On Plan 9, this is the contents of /dev/user.
  	Gid string
  	// Username is the login name.
  	Username string
  	// Name is the user's real or display name.
  	// It might be blank.
  	// On POSIX systems, this is the first (or only) entry in the GECOS field
  	// list.
  	// On Windows, this is the user's display name.
  	// On Plan 9, this is the contents of /dev/user.
  	Name string
  	// HomeDir is the path to the user's home directory (if they have one).
  	HomeDir string
  }
  
  // Group represents a grouping of users.
  //
  // On POSIX systems Gid contains a decimal number representing the group ID.
  type Group struct {
  	Gid  string // group ID
  	Name string // group name
  }
  
  // UnknownUserIdError is returned by LookupId when a user cannot be found.
  type UnknownUserIdError int
  
  func (e UnknownUserIdError) Error() string {
  	return "user: unknown userid " + strconv.Itoa(int(e))
  }
  
  // UnknownUserError is returned by Lookup when
  // a user cannot be found.
  type UnknownUserError string
  
  func (e UnknownUserError) Error() string {
  	return "user: unknown user " + string(e)
  }
  
  // UnknownGroupIdError is returned by LookupGroupId when
  // a group cannot be found.
  type UnknownGroupIdError string
  
  func (e UnknownGroupIdError) Error() string {
  	return "group: unknown groupid " + string(e)
  }
  
  // UnknownGroupError is returned by LookupGroup when
  // a group cannot be found.
  type UnknownGroupError string
  
  func (e UnknownGroupError) Error() string {
  	return "group: unknown group " + string(e)
  }
  

View as plain text