diff --git a/src/install.rs b/src/install.rs index ad76f808c8ba87fd98c29988b2f5c03811e7e3fe..2282dd468544c44b1d2af905a488992c29b59e52 100644 --- a/src/install.rs +++ b/src/install.rs @@ -163,6 +163,7 @@ pub fn install<P: AsRef<Path>, S: AsRef<str>>(config: Config, output: P, cookboo } let mut passwd = String::new(); + let mut shadow = String::new(); let mut next_uid = 1000; for (username, user) in config.users { let password = if let Some(password) = user.password { @@ -195,11 +196,17 @@ pub fn install<P: AsRef<Path>, S: AsRef<str>>(config: Config, output: P, cookboo dir!(home.trim_matches('/')); - passwd.push_str(&format!("{};{};{};{};{};file:{};file:{}\n", username, password, uid, gid, name, home, shell)); + passwd.push_str(&format!("{};{};{};{};file:{};file:{}\n", username, uid, gid, name, home, shell)); + shadow.push_str(&format!("{};{}\n", username, password)); } - if ! passwd.is_empty() { + + if !passwd.is_empty() { file!("etc/passwd", passwd.as_bytes(), false); } - + + if !shadow.is_empty() { + file!("etc/shadow", shadow.as_bytes(), false); + } + Ok(()) }