Removing an user causes /etc/passwd, /etc/shadow, and /etc/group to
change, so mark the side effects as such if any user has been removed.
---
sysprep/sysprep_operation_user_account.ml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/sysprep/sysprep_operation_user_account.ml
b/sysprep/sysprep_operation_user_account.ml
index bda6331..e53e5cc 100644
--- a/sysprep/sysprep_operation_user_account.ml
+++ b/sysprep/sysprep_operation_user_account.ml
@@ -55,6 +55,7 @@ let check_remove_user user =
let user_account_perform ~verbose ~quiet g root side_effects =
let typ = g#inspect_get_type root in
+ let changed = ref false in
if typ <> "windows" then (
g#aug_init "/" 0;
let uid_min = g#aug_get "/files/etc/login.defs/UID_MIN" in
@@ -72,6 +73,7 @@ let user_account_perform ~verbose ~quiet g root side_effects =
String.sub userpath (i+1) (String.length userpath -i-1) in
if uid >= uid_min && uid <= uid_max
&& check_remove_user username then (
+ changed := true;
(* Get the home before removing the passwd entry. *)
let home_dir =
try Some (g#aug_get (userpath ^ "/home"))
@@ -90,7 +92,9 @@ let user_account_perform ~verbose ~quiet g root side_effects =
)
) users;
g#aug_save ();
- )
+ );
+ if !changed then
+ side_effects#changed_file ()
let op = {
defaults with
--
1.9.3