[][src]Struct redox_users::AllUsers

pub struct AllUsers { /* fields omitted */ }

AllUsers provides (borrowed) access to all the users on the system. Note that this struct implements All for a bunch of convenient access functions.

Notes

Note that everything in this section also applies to AllGroups

  • If you mutate anything owned by an AllUsers, you must call the save method in order for those changes to be applied to the system.
  • The API here is kept small on purpose in order to reduce the surface area for security exploitation. Most mutating actions can be accomplished via the get_mut_by_id and get_mut_by_name functions.

Shadowfile handling

This implementation of redox-users uses a shadowfile implemented primarily by this struct. AllUsers respects the auth_enabled status of the Config that is was passed. If auth is enabled, it populates the hash fields of each user struct that it parses from /etc/passwd with info from /et/shadow. If a caller attempts to perform an action that requires this info with an AllUsers config that does not have auth enabled, the User handling action will panic.

Implementations

impl AllUsers[src]

pub fn new(config: Config) -> Result<AllUsers>[src]

See Shadowfile Handling for configuration information regarding this constructor.

pub fn add_user(
    &mut self,
    login: &str,
    uid: usize,
    gid: usize,
    name: &str,
    home: &str,
    shell: &str
) -> Result<()>
[src]

Adds a user with the specified attributes to the AllUsers instance. Note that the user's password is set unset (see Unset vs Blank Passwords) during this call.

This function is classified as a mutating operation, and users must therefore call save in order for the new user to be applied to the system.

Panics

This function will panic! if the Config passed to AllUsers::new does not have authentication enabled (see Shadowfile handling).

pub fn save(&self) -> Result<()>[src]

Syncs the data stored in the AllUsers instance to the filesystem. To apply changes to the system from an AllUsers, you MUST call this function!

Trait Implementations

impl All for AllUsers[src]

impl Debug for AllUsers[src]

Auto Trait Implementations

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> From<T> for T[src]

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

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.