Fix the handling of -a when a user is being renamed (with -l). The new

name of the user was used for the new supplementary groups, but not in the
existing ones.
This commit is contained in:
nekral-guest 2008-02-10 20:25:39 +00:00
parent ead95673a5
commit a5f949165a
3 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2008-02-10 Nicolas François <nicolas.francois@centraliens.net>
* NEWS, src/usermod.c: Fix the handling of -a when a user is being
renamed (with -l). The new name of the user was used for the new
supplementary groups, but not in the existing ones.
2008-02-10 Nicolas François <nicolas.francois@centraliens.net>
* src/newusers.c: Set the shadow's password instead of the

1
NEWS
View File

@ -65,6 +65,7 @@ shadow-4.1.0 -> shadow-4.1.1 UNRELEASED
one, no changes will be performed for that field. If no fields are
changed, usermod will exist successfully with a warning. This avoids
logging changes to syslog when there are actually no changes.
* Fix the handling of -a when a user is being renamed (with -l)
- vipw/vigr
* Recommend editing the shadowed (resp. regular) file if the regular (resp.
shadowed) file was edited.

View File

@ -533,7 +533,8 @@ static void update_group (void)
* concurrent groups.
*/
was_member = is_on_list (grp->gr_mem, user_name);
is_member = Gflg && is_on_list (user_groups, grp->gr_name);
is_member = Gflg && ( (was_member && aflg)
|| is_on_list (user_groups, grp->gr_name));
if (!was_member && !is_member)
continue;
@ -629,6 +630,8 @@ static void update_gshadow (void)
* concurrent groups.
*/
is_member = Gflg && is_on_list (user_groups, sgrp->sg_name);
is_member = Gflg && ( (was_member && aflg)
|| is_on_list (user_groups, sgrp->sg_name));
if (!was_member && !was_admin && !is_member)
continue;