Struct otter_api_tests::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,
}

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

name: String

Username

passwd: CString

User password (probably encrypted)

uid: Uid

User ID

gid: Gid

Group ID

gecos: CString

User information

dir: PathBuf

Home directory

shell: PathBuf

Path to shell

Implementations

impl User

pub fn from_uid(uid: Uid) -> Result<Option<User>, Error>

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<User>, Error>

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 Clone for User

impl Debug for User

impl<'_> From<&'_ passwd> for User

impl PartialEq<User> for User

impl StructuralPartialEq for User

Auto Trait Implementations

impl RefUnwindSafe for User

impl Send for User

impl Sync for User

impl Unpin for User

impl UnwindSafe for User

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any

impl<T> DowncastSync for T where
    T: Any + Send + Sync

impl<A> DynCastExt for A

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,