分类: 系统运维
2012-03-29 12:29:21
UNIX系统的组文件,被POSIX.1称为组数据库,包含了下表展示的域。这些域被一个group结构体包含,定义在
/etc/group文件的域 | ||||||
描述 | 结构体group的成员 | POSIX.1 | FreeBSD 5.2.1 | Linux 2.4.22 | Mac OS X 10.3 | Solaris 9 |
组名 | char *gr_name | * | * | * | * | * |
加密密码 | char *gr_passwd | * | * | * | * | |
数值化组ID | int gr_gid | * | * | * | * | * |
指向各个用户名的指针数组 | char **gr_mem | * | * | * | * | * |
域gr_mem是一个指向属于该组的用户名的指针数组。这个数组由空指针结束。
我们可以用下面两个函数查找组名或组ID,它们定义在POSIX.1里:
和密码文件函数一样,这两个函数通常都返回静态变量的指针,每次调用时都被覆写。
如果我们要查找整个组文件,我们需要一些额外函数。以下三个函数与它们相对的密码文件函数相似:
这三个函数不是基本POSIX.1标准的一部分,而是SUS的XSI扩展里定义的。所有UNIX系统都提供了它们。
setgrent函数打开组文件,哪果它还没有被打开的话。getgrent函数从组文件中读取下一个项,首先打开这个文件,如果它还没打开的话。endgrent函数关闭这个组文件。