📄 initgroups.c
字号:
#include <stdio.h>#include <unistd.h>#include <grp.h>#include <pwd.h>#include <sys/types.h>int main(int argc, char **argv){ int result, ngroups, i; gid_t *groups; struct passwd *pw; if (!(pw = getpwnam(argv[1]))) { printf("FAIL: no passwd entry for %s\n", argv[1]); return 1; } result = initgroups(argv[1], pw->pw_gid); if (result == -1) { printf("FAIL"); return 1; } ngroups = getgroups(0, NULL); groups = (gid_t *)malloc(sizeof(gid_t) * ngroups); ngroups = getgroups(ngroups, groups); printf("%s is a member of groups:\n", argv[1]); for (i = 0; i < ngroups; i++) { struct group *grp; grp = getgrgid(groups[i]); printf("%d (%s)\n", groups[i], grp ? grp->gr_name : "?"); } printf("PASS\n"); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -