例:
1 root:x:0:
2 daemon:x:1:
3 bin:x:2:
4 sys:x:3:
5 adm:x:4:hacker
6 tty:x:5:
7 disk:x:6:
8 lp:x:7:
9 mail:x:8:
10 news:x:9:
11 uucp:x:10:
12 man:x:12:
13 proxy:x:13:
组名:口令:组标识号:组内用户列表
1)“组名”是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
2)“口令”字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。
3)“组标识号”与用户标识号类似,也是一个整数,被系统内部用来标识组。
4)“组内用户列表”是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
名称:: | getgroups/setgroups/initgroups |
功能: | get group file entry |
头文件: | #include <grp.h> #include <unistd.h> |
函数原形: | int getgroups(int gidsetsize,gid_t grouplist[]); int setgroups(int ngroups,const gid_t grouplist[]); int initgrops(const char *username,gid_t basegid); |
参数: | grouplist[] gidsetsize ngroups username |
返回值: | getgroups setgroups/ initgrops |
一个用户不仅属于口令文件记录项中组id所对应的组。也可以属于多达16个另外的组。在这里另外的组id叫附加组id。这样我们就可以实现一个人属于多个组了。下面的例子功能是打印当前用户的附加主组id。