diff --git a/ChangeLog b/ChangeLog index c38fd6da..026394de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-11-17 Nicolas François + + * src/newgrp.c: Do not request a password when a user uses newgrp + to switch to her primary group. + Debian patch 497_newgrp_primary_group. + 2007-11-17 Nicolas François * src/login.c: Log an error if the password entry could not be diff --git a/src/newgrp.c b/src/newgrp.c index ae2b8d7e..38947bdf 100644 --- a/src/newgrp.c +++ b/src/newgrp.c @@ -348,12 +348,15 @@ int main (int argc, char **argv) #endif /* - * see if she is a member of this group. If she isn't a member, she - * needs to provide the group password. If there is no group - * password, she will be denied access anyway. + * see if she is a member of this group (i.e. in the list of + * members of the group, or if the group is her primary group). + * + * If she isn't a member, she needs to provide the group password. + * If there is no group password, she will be denied access + * anyway. * */ - if (!is_on_list (grp->gr_mem, name)) + if (grp->gr_gid != pwd->pw_gid && !is_on_list (grp->gr_mem, name)) needspasswd = 1; /*