/etc/group文件详解

来源:互联网 发布:linux 动态调试工具 编辑:程序博客网 时间:2024/04/30 02:21

 

例:

  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[]  用于存放附加组id

gidsetsize  最大存放id的个数            

ngroups    数组中元素的个数

username   用户名

返回值:

getgroups  若成功则返回附加组id数,若出错则返回-1

setgroups/ initgrops  若成功则返回0,若出错则返回-1

 

 

一个用户不仅属于口令文件记录项中组id所对应的组。也可以属于多达16个另外的组。在这里另外的组id叫附加组id。这样我们就可以实现一个人属于多个组了。下面的例子功能是打印当前用户的附加主组id。

 

原创粉丝点击