wheel group
This commit is contained in:
parent
33a8fed192
commit
05cf6cf9da
6 changed files with 20 additions and 17 deletions
|
@ -52,5 +52,5 @@ name = "u"
|
||||||
# User password
|
# User password
|
||||||
password = "pass"
|
password = "pass"
|
||||||
|
|
||||||
# Allow user to use `doas` as root
|
# Add user to wheel group
|
||||||
doas_root= true
|
wheel = true
|
||||||
|
|
|
@ -69,8 +69,8 @@ home_dir = "/home/u"
|
||||||
# Set the shell of the user
|
# Set the shell of the user
|
||||||
shell = "/bin/bash"
|
shell = "/bin/bash"
|
||||||
|
|
||||||
# Allow user to use `doas` as root
|
# Add user to wheel group
|
||||||
doas_root= true
|
wheel = true
|
||||||
|
|
||||||
# Add user to Docker group
|
# Add user to Docker group
|
||||||
docker = true
|
docker = true
|
||||||
|
|
|
@ -52,8 +52,8 @@ name = "u"
|
||||||
# User password
|
# User password
|
||||||
password = "pass"
|
password = "pass"
|
||||||
|
|
||||||
# Allow user to use `doas` as root
|
# Add user to wheel group
|
||||||
doas_root= true
|
wheel = true
|
||||||
|
|
||||||
# Add user to Docker group
|
# Add user to Docker group
|
||||||
docker = true
|
docker = true
|
||||||
|
|
|
@ -44,7 +44,7 @@ pub struct UserConfig {
|
||||||
pub uid: Option<u32>,
|
pub uid: Option<u32>,
|
||||||
pub home_dir: Option<String>,
|
pub home_dir: Option<String>,
|
||||||
pub shell: Option<String>,
|
pub shell: Option<String>,
|
||||||
pub doas_root: Option<bool>,
|
pub wheel: Option<bool>,
|
||||||
pub docker: Option<bool>,
|
pub docker: Option<bool>,
|
||||||
pub virtualization: Option<bool>,
|
pub virtualization: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
use crate::{
|
use crate::{
|
||||||
config::UserConfig,
|
config::UserConfig, linux::{arch_chroot, install_file}, pkg::install_pkgs, print_status
|
||||||
linux::{arch_chroot, install_file},
|
|
||||||
print_status,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn change_passwd(user: &str, pw: &str) {
|
pub fn change_passwd(user: &str, pw: &str) {
|
||||||
|
@ -10,7 +8,10 @@ pub fn change_passwd(user: &str, pw: &str) {
|
||||||
|
|
||||||
/// Setup the users of the system
|
/// Setup the users of the system
|
||||||
pub fn setup_users(conf: &[UserConfig]) {
|
pub fn setup_users(conf: &[UserConfig]) {
|
||||||
let mut doas_conf = String::new();
|
if !conf.is_empty() {
|
||||||
|
install_pkgs(&["doas"]);
|
||||||
|
install_file("/mnt/etc/doas.conf", "permit persist :wheel as root", 0o644);
|
||||||
|
}
|
||||||
|
|
||||||
for user in conf {
|
for user in conf {
|
||||||
let mut cmd = vec!["useradd"];
|
let mut cmd = vec!["useradd"];
|
||||||
|
@ -45,11 +46,13 @@ pub fn setup_users(conf: &[UserConfig]) {
|
||||||
|
|
||||||
change_passwd(&user.name, &user.password);
|
change_passwd(&user.name, &user.password);
|
||||||
|
|
||||||
if user.doas_root.unwrap_or_default() {
|
if user.wheel.unwrap_or_default() {
|
||||||
print_status(&format!("Allowing root doas for {}", user.name));
|
print_status(&format!("Adding {} to wheel", user.name));
|
||||||
doas_conf.push_str(&format!("permit {} as root\n", user.name));
|
arch_chroot(
|
||||||
|
&vec!["usermod", "-a", "-G", "wheel", user.name.as_str()],
|
||||||
|
None,
|
||||||
|
false,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
install_file("/mnt/etc/doas.conf", &doas_conf, 0o644);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,7 +94,7 @@ pub fn print_config(conf: &InstallConfig) {
|
||||||
for user in user_conf {
|
for user in user_conf {
|
||||||
let mut groups = Vec::new();
|
let mut groups = Vec::new();
|
||||||
|
|
||||||
if user.doas_root.unwrap_or_default() {
|
if user.wheel.unwrap_or_default() {
|
||||||
groups.push("🔑");
|
groups.push("🔑");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue