getgrouplist - phpMan

Command: man perldoc info search(apropos)  


GETGROUPLIST(2)            Linux Programmer’s Manual           GETGROUPLIST(2)



NAME
       getgrouplist -  list of groups a user belongs to

SYNOPSIS
       #include <grp.h>

       int getgrouplist (const char *user, gid_t group,
                         gid_t *groups, int *ngroups);

DESCRIPTION
       The  getgrouplist()  function  scans  the  group  database  for all the groups user
       belongs to.  Up to *ngroups group IDs corresponding to these groups are  stored  in
       the  array  groups;  the  return value from the function is the number of group IDs
       actually stored. The group group is automatically included in the  list  of  groups
       returned by getgrouplist().

RETURN VALUE
       If  *ngroups  is smaller than the total number of groups found, then getgrouplist()
       returns a value of ‘-1’.  In all cases the actual number of  groups  is  stored  in
       *ngroups.

BUGS
       The  glibc  2.3.2  implementation  of this function is broken: it overwrites memory
       when the actual number of groups is larger than *ngroups.

CONFORMING TO
       This function is present since glibc 2.2.4.

EXAMPLE
       /* This crashes with glibc 2.3.2 */
       #include <stdio.h>
       #include <stdlib.h>
       #include <grp.h>
       #include <pwd.h>

       int main() {
               int i, ng = 0;
               char *user = "who";   /* username here */
               gid_t *groups = NULL;
               struct passwd *pw = getpwnam(user);
               if (pw == NULL)
                       return 0;

               if (getgrouplist(user, pw->pw_gid, NULL, &ng) < 0) {
                       groups = (gid_t *) malloc(ng * sizeof (gid_t));
                       getgrouplist(user, pw->pw_gid, groups, &ng);
               }

               for(i = 0; i < ng; i++)
                       printf("%d\n", groups[i]);

               return 0;
       }

SEE ALSO
       getgroups(3), setgroups(3)



GNU                               2003-11-18                   GETGROUPLIST(2)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache/1.3.41 (Unix) PHP/5.2.5 mod_perl/1.30 mod_gzip/1.3.26.1a
Under GNU General Public License
2009-01-09 06:18 @38.103.63.58 CrawledBy CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!