summaryrefslogtreecommitdiff
path: root/src/usermod.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/usermod.c')
-rw-r--r--src/usermod.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/usermod.c b/src/usermod.c
index 44e056ae..c1a5b2cd 100644
--- a/src/usermod.c
+++ b/src/usermod.c
@@ -716,7 +716,7 @@ static void update_group (void)
* If rflg+Gflg is passed in AKA -rG invert is_member flag, which removes
* mentioned groups while leaving the others.
*/
- if (Gflg && rflg && was_member) {
+ if (Gflg && rflg) {
is_member = !is_member;
}
@@ -765,7 +765,7 @@ static void update_group (void)
"delete '%s' from group '%s'",
user_name, ngrp->gr_name));
}
- } else {
+ } else if (is_member) {
/* User was not a member but is now a member this
* group.
*/
@@ -839,7 +839,7 @@ static void update_gshadow (void)
* If rflg+Gflg is passed in AKA -rG invert is_member, to remove targeted
* groups while leaving the user apart of groups not mentioned
*/
- if (Gflg && rflg && was_member) {
+ if (Gflg && rflg) {
is_member = !is_member;
}
@@ -1882,6 +1882,11 @@ static void move_home (void)
Prog, prefix_user_home, prefix_user_newhome);
fail_exit (E_HOMEDIR);
}
+ } else {
+ fprintf (stderr,
+ _("%s: The previous home directory (%s) does not "
+ "exist or is inaccessible. Move cannot be completed.\n"),
+ Prog, prefix_user_home);
}
}