Struct nix::unistd::User
pub struct User {
pub name: String,
pub passwd: CString,
pub uid: Uid,
pub gid: Gid,
pub gecos: CString,
pub dir: PathBuf,
pub shell: PathBuf,
}
The portability is definied by:
#[cfg(not(target_os = "redox"))]
Documentation
Representation of a User, based on libc::passwd
The reason some fields in this struct are String
and others are CString
is because some
fields are based on the user’s locale, which could be non-UTF8, while other fields are
guaranteed to conform to NAME_REGEX
, which only
contains ASCII.
Fields
pub name: String
Username
pub passwd: CString
User password (probably encrypted)
pub uid: Uid
User ID
pub gid: Gid
Group ID
pub gecos: CString
User information
pub dir: PathBuf
Home directory
pub shell: PathBuf
Path to shell
Implementations
impl User
pub fn from_uid(uid: Uid) -> Result<Option<Self>>
Get a user by UID.
Internally, this function calls getpwuid_r(3)
Examples
use nix::unistd::{Uid, User};
// Returns an Result<Option<User>>, thus the double unwrap.
let res = User::from_uid(Uid::from_raw(0)).unwrap().unwrap();
assert!(res.name == "root");
pub fn from_name(name: &str) -> Result<Option<Self>>
Get a user by name.
Internally, this function calls getpwnam_r(3)
Examples
use nix::unistd::User;
// Returns an Result<Option<User>>, thus the double unwrap.
let res = User::from_name("root").unwrap().unwrap();
assert!(res.name == "root");
Trait Implementations
impl Debug for User
fn fmt(&Self, f: &mut $crate::fmt::Formatter<'_>) -> $crate::fmt::Result
impl StructuralPartialEq for User
Auto Trait Implementations
impl RefUnwindSafe for User
impl UnwindSafe for User
Blanket Implementations
impl<T> BorrowMut<T> for T
where
T: ?Sized,
where
T: ?Sized,
fn borrow_mut(&mut Self) -> &mut T