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

@ -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;