Lines Matching +full:- +full:grp

1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
4 * Copyright (c) 2004 Dag-Erling Smørgrav
33 #include <grp.h>
85 (p == list || p[-1] == ',') && in member()
126 struct group *grp; in get_groups() local
136 if ((grp = getgrent()) == NULL) in get_groups()
138 grps[ngrps].gr_name = xstrdup(grp->gr_name); in get_groups()
139 grps[ngrps].gr_passwd = xstrdup(grp->gr_passwd); in get_groups()
140 grps[ngrps].gr_gid = grp->gr_gid; in get_groups()
142 for (i = 0, len = 1; grp->gr_mem[i] != NULL; ++i) in get_groups()
143 len += strlen(grp->gr_mem[i]) + 1; in get_groups()
145 for (i = 0, len = 0; grp->gr_mem[i] != NULL; ++i) in get_groups()
147 i ? ",%s" : "%s", grp->gr_mem[i]); in get_groups()
188 return (strcmp(a->pw_name, b->pw_name)); in pwd_cmp_byname()
197 return (a->pw_uid - b->pw_uid); in pwd_cmp_byuid()
213 pwds[npwds].pw_name = xstrdup(pwd->pw_name); in get_users()
214 pwds[npwds].pw_passwd = xstrdup(pwd->pw_passwd); in get_users()
215 pwds[npwds].pw_uid = pwd->pw_uid; in get_users()
216 pwds[npwds].pw_gid = pwd->pw_gid; in get_users()
217 pwds[npwds].pw_change = pwd->pw_change; in get_users()
218 pwds[npwds].pw_class = xstrdup(pwd->pw_class); in get_users()
219 pwds[npwds].pw_gecos = xstrdup(pwd->pw_gecos); in get_users()
220 pwds[npwds].pw_dir = xstrdup(pwd->pw_dir); in get_users()
221 pwds[npwds].pw_shell = xstrdup(pwd->pw_shell); in get_users()
222 pwds[npwds].pw_expire = pwd->pw_expire; in get_users()
233 struct xgroup *grp; in select_users() local
238 pwd->pw_selected = 1; in select_users()
242 if ((i > 0 && pwd->pw_uid == pwd[-1].pw_uid) || in select_users()
243 (i < npwds - 1 && pwd->pw_uid == pwd[1].pw_uid)) { in select_users()
244 pwd->pw_selected = 1; in select_users()
248 for (j = 0, grp = grps; j < ngrps; ++j, ++grp) { in select_users()
249 if (member(grp->gr_name, g_args) && in select_users()
250 member(pwd->pw_name, grp->gr_mem)) { in select_users()
251 pwd->pw_selected = 1; in select_users()
255 if (pwd->pw_selected) in select_users()
259 if (member(pwd->pw_name, l_args)) { in select_users()
260 pwd->pw_selected = 1; in select_users()
264 if (pwd->pw_passwd[0] == '\0') { in select_users()
265 pwd->pw_selected = 1; in select_users()
269 if (pwd->pw_uid < 1000 || pwd->pw_uid == 65534) { in select_users()
270 pwd->pw_selected = 1; in select_users()
274 if (pwd->pw_uid >= 1000 && pwd->pw_uid != 65534) { in select_users()
275 pwd->pw_selected = 1; in select_users()
293 struct xgroup *grp; in display_user() local
298 grp = find_group_bygid(pwd->pw_gid); in display_user()
299 printf(o_flag ? "%s:%ld:%s:%ld:%s" : "%-15s %-7ld %-15s %-7ld %s\n", in display_user()
300 pwd->pw_name, (long)pwd->pw_uid, grp ? grp->gr_name : "", in display_user()
301 (long)pwd->pw_gid, pwd->pw_gecos); in display_user()
303 for (i = 0, grp = grps; i < ngrps; ++i, ++grp) { in display_user()
304 if (grp->gr_gid == pwd->pw_gid || in display_user()
305 !member(pwd->pw_name, grp->gr_mem)) in display_user()
307 printf(o_flag ? "%s:%s:%ld" : "%24s%-15s %-7ld\n", in display_user()
308 "", grp->gr_name, (long)grp->gr_gid); in display_user()
312 printf(o_flag ? "%s:%s" : "%24s%s\n", "", pwd->pw_dir); in display_user()
313 printf(o_flag ? "%s:%s" : "%24s%s\n", "", pwd->pw_shell); in display_user()
316 tm = gmtime(&pwd->pw_change); in display_user()
317 strftime(cbuf, sizeof(cbuf), pwd->pw_change ? "%F" : "0", tm); in display_user()
318 tm = gmtime(&pwd->pw_expire); in display_user()
319 strftime(ebuf, sizeof(ebuf), pwd->pw_expire ? "%F" : "0", tm); in display_user()
333 if (pwd->pw_selected) in list_users()
340 fprintf(stderr, "usage: logins [-admopstux] [-g group] [-l login]\n"); in usage()
349 while ((o = getopt(argc, argv, "adg:l:mopstux")) != -1) in main()
394 argc -= optind; in main()