Add is system user
This commit is contained in:
parent
9b4956c78a
commit
c6af13f3af
@ -96,6 +96,14 @@ impl TryFrom<&str> for Uid {
|
||||
}
|
||||
}
|
||||
|
||||
impl Uid {
|
||||
#[must_use]
|
||||
pub const fn is_system_uid(&self) -> bool {
|
||||
// since it is a u32 it cannot be smaller than 0
|
||||
self.uid < 1000
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub struct Gid {
|
||||
gid: u32,
|
||||
@ -116,6 +124,14 @@ impl TryFrom<&str> for Gid {
|
||||
}
|
||||
}
|
||||
|
||||
impl Gid {
|
||||
#[must_use]
|
||||
pub const fn is_system_gid(&self) -> bool {
|
||||
// since it is a u32 it cannot be smaller than 0
|
||||
self.gid < 1000
|
||||
}
|
||||
}
|
||||
|
||||
/// The gecos field of a user.
|
||||
///
|
||||
/// In the `/etc/passwd` file this field is a `,` sepparated list of items.
|
||||
@ -455,6 +471,16 @@ fn test_default_user() {
|
||||
assert_eq!(pwd.uid.uid, 1001);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_guid_system_user() {
|
||||
// Check uids of system users.
|
||||
let values = vec![("999", true), ("0", true), ("1000", false)];
|
||||
for val in values {
|
||||
assert_eq!(Uid::try_from(val.0).unwrap().is_system_uid(), val.1);
|
||||
assert_eq!(Gid::try_from(val.0).unwrap().is_system_gid(), val.1);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_parse_gecos() {
|
||||
// test if the Gecos field can be parsed and the resulting struct is populated correctly.
|
||||
|
Loading…
Reference in New Issue
Block a user