Is there a command or better combination of cmds that will give me the list of Unix users in a particular Unix group whether their primary group is that group in question (information stored in /etc/passwd) or they are in a secondary group (information stored in /etc/group).
So far all I got is a combination of the following:
groupName=XXXXX
groupId=$( getent group | egrep "^${groupName}:" | cut -d: -f3 )
getent passwd | egrep "^.*:.*:.*:${groupId}" | cut -f1 -d:
getent group | egrep "^${groupName}:" | cut -f4 -d:
(Yeah for all you NIS and/or LDAP guys, I did use the getent commands)
Hi!!,
I am on HP UX -11. I have created a new group and want to assign some the users to this group without changing their existing group ( The new group is the secondary group for them)
Any ideas how to do it??
SAM doesnt seem to be working.. Any way of doing it from command line??
... (1 Reply)
When users login, they are directed to menu (aix script). The menu enables the user to choose an environment to work in. Each environment has a different group id. When a user chooses a menu option, I want to change his primary group to that specific environment's group id. Is this at all possible... (3 Replies)
hi guys,
i am new to this DNS business and i'm having a problem.
the setup is bind 9.2.3 is installed on a sun solaris 8 server and is the primary DNS. men and mice suite is installed on another sun solaris 8 and that is our secondary DNS server.
problem is recently the secondary DNS stopped... (0 Replies)
Hello All,
Does some one know how to synchronize the primary name server with the secondary without knowing the domains on which synchronization failed.
I have just done /usr/sbin/ndc reload
Alternatively how do i find out the domains on which synchronization failed? (4 Replies)
Hi
New here so forgive my ignorance and inability to express myself in an informative manner ;)
I have a Fedora distribution installed on my development computer. The system we build is meant to run on a slackware dist which is all fine and well. But due to our flow of deployment I would have... (2 Replies)
Hi,
When I include a user to the secondary group "sys" GID=3 in Solaris 9 OS I'm not able to login. I get these error. The user home directory and the shell exists. Is this because of any security hardening.
# su - agent
No directory!
# su agent
su: No shell
# grep taddm /etc/passwd... (14 Replies)
Dear All
I am facing a problem with my script.
I have to found the primary group of users .
So first I selected all the groups and users register from a specific user : ONE
Then I am making a file with all groups attached to the user : ONE
Then I am making a file with all... (8 Replies)
hi there,
i using salaris 10 as my DNS server.
i have 2 dns server primary and secondary. if primary dns server i edit/update, the other secondary dns server must be sync too.
How can i configure if dns server (primary) can sync the secondary? (1 Reply)
Discussion started by: tappetmus
1 Replies
LEARN ABOUT SUSE
getgrouplist
GETGROUPLIST(3) Linux Programmer's Manual GETGROUPLIST(3)NAME
getgrouplist - get list of groups to which a user belongs
SYNOPSIS
#include <grp.h>
int getgrouplist(const char *user, gid_t group,
gid_t *groups, int *ngroups);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
getgrouplist(): _BSD_SOURCE
DESCRIPTION
The getgrouplist() function scans the group database (see group(5)) to obtain the list of groups that user belongs to. Up to *ngroups of
these groups are returned in the array groups.
If it was not among the groups defined for user in the group database, then group is included in the list of groups returned by getgrou-
plist(); typically this argument is specified as the group ID from the password record for user.
The ngroups argument is a value-result argument: on return it always contains the number of groups found for user, including group; this
value may be greater than the number of groups stored in groups.
RETURN VALUE
If the number of groups of which user is a member is less than or equal to *ngroups, then the value *ngroups is returned.
If the user is a member of more than *ngroups groups, then getgrouplist() returns -1. In this case the value returned in *ngroups can be
used to resize the buffer passed to a further call getgrouplist().
VERSIONS
This function is present since glibc 2.2.4.
CONFORMING TO
This function is nonstandard; it appears on most BSDs.
BUGS
In glibc versions before 2.3.3, the implementation of this function contains a buffer-overrun bug: it returns the complete list of groups
for user in the array groups, even when the number of groups exceeds *ngroups.
EXAMPLE
The program below displays the group list for the user named in its first command-line argument. The second command-line argument speci-
fies the ngroups value to be supplied to getgrouplist(). The following shell session shows examples of the use of this program:
$ ./a.out cecilia 0
getgrouplist() returned -1; ngroups = 3
$ ./a.out cecilia 3
ngroups = 3
16 (dialout)
33 (video)
100 (users)
Program source
#include <stdio.h>
#include <stdlib.h>
#include <grp.h>
#include <pwd.h>
int
main(int argc, char *argv[])
{
int j, ngroups;
gid_t *groups;
struct passwd *pw;
struct group *gr;
if (argc != 3) {
fprintf(stderr, "Usage: %s <user> <ngroups>
", argv[0]);
exit(EXIT_FAILURE);
}
ngroups = atoi(argv[2]);
groups = malloc(ngroups * sizeof (gid_t));
if (groups == NULL) {
perror("malloc");
exit(EXIT_FAILURE);
}
/* Fetch passwd structure (contains first group ID for user) */
pw = getpwnam(argv[1]);
if (pw == NULL) {
perror("getpwnam");
exit(EXIT_SUCCESS);
}
/* Retrieve group list */
if (getgrouplist(argv[1], pw->pw_gid, groups, &ngroups) == -1) {
fprintf(stderr, "getgrouplist() returned -1; ngroups = %d
",
ngroups);
exit(EXIT_FAILURE);
}
/* Display list of retrieved groups, along with group names */
fprintf(stderr, "ngroups = %d
", ngroups);
for (j = 0; j < ngroups; j++) {
printf("%d", groups[j]);
gr = getgrgid(groups[j]);
if (gr != NULL)
printf(" (%s)", gr->gr_name);
printf("
");
}
exit(EXIT_SUCCESS);
}
SEE ALSO getgroups(2), setgroups(2), getgrent(3), group(5), passwd(5)COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
GNU 2008-07-03 GETGROUPLIST(3)