Mercurial > hg > Members > anatofuz > ie-virsh
view src/user.rs @ 24:e8ba0f63c227
remove static variable
author | AnaTofuZ <anatofuz@gmail.com> |
---|---|
date | Tue, 03 Nov 2020 18:37:04 +0900 |
parents | e6dc51066703 |
children | afec42bdd5ab |
line wrap: on
line source
pub struct User { pub Uid: u32, pub Gid: u32, pub Name: String } pub fn getlogin(uid: u32) -> String { use std::ffi::CStr; let user_passwd = unsafe { nix::libc::getpwuid(uid) }; let c_str = unsafe { CStr::from_ptr((*user_passwd).pw_name) }; c_str.to_str().unwrap().to_string() } pub fn getuid() -> u32 { let uid_struct = nix::unistd::getuid(); uid_struct.into() } pub fn getgid() -> u32 { let gid_struct = nix::unistd::getgid(); gid_struct.into() } const ROOT_ID: u32 = 0; pub fn set_root_id() { if let Err(err) = nix::unistd::seteuid(nix::unistd::Uid::from_raw(ROOT_ID)) { panic!("failed seteuid {}", err) } if let Err(err) = nix::unistd::setegid(nix::unistd::Gid::from_raw(ROOT_ID)) { panic!("failed setedid{}", err) } if let Err(err) = nix::unistd::setuid(nix::unistd::Uid::from_raw(ROOT_ID)) { panic!("failed setuid {}", err) } if let Err(err) = nix::unistd::setgid(nix::unistd::Gid::from_raw(ROOT_ID)) { panic!("failed setdid{}", err) } }