You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jade/src/functions/users.rs

68 lines
1.8 KiB
Rust

use crate::internal::exec::*;
use crate::internal::*;
pub fn new_user(username: &str, hasroot: bool, password: &str) {
exec_eval(
exec_chroot(
"useradd",
vec![
String::from("-m"),
String::from("-s"),
String::from("/bin/bash"),
String::from(username),
],
),
format!("Create user {}", username).as_str(),
);
if hasroot {
exec_eval(
exec_chroot(
"usermod",
vec![
String::from("-a"),
String::from("-G"),
String::from("wheel"),
String::from(username),
],
),
format!("Add user {} to wheel group", username).as_str(),
);
}
exec_eval(
exec_chroot(
"bash",
vec![
String::from("-c"),
String::from("'usermod"),
String::from("--password"),
String::from("$(echo"),
String::from(password),
String::from("|"),
String::from("openssl"),
String::from("passwd"),
String::from("-1"),
String::from("-stdin)"),
format!("{}'", username),
],
),
format!("Set password for user {}", username).as_str(),
);
}
pub fn root_pass(root_pass: &str) {
println!("Setting root password to '{}'", root_pass);
exec_eval(
exec_chroot(
"bash",
vec![
String::from("-c"),
format!(
"'usermod --password $(echo {} | openssl passwd -1 -stdin) root'",
root_pass
),
],
),
"set root password",
);
}