这一章主要介绍了口令文件和组文件的结构和一些围绕这些结构的函数。安全
口令文件即passwd就是在/etc/passwd中能够查阅。其结构是:函数
上图四个平台能支持的就用黑点表示。ui
由于加密口令这一项放在passwd这我的人可读的文件中,可能会有安全问题。因此如今的Linux中的加密口令都是放在/etc/shadow中,只有root用户才能够查看。而在passwd文件中加密口令这一项则显示为x。(每一项都是用冒号隔开的)加密
POSIX.1就定义了两个函数来让咱们获取用户名或者数值用户ID。指针
#include <pwd.h>blog
struct passwd *getpwuid(uid_t uid);get
struct passwd *getpwnam(const char *name);bfc
返回值:成功返回指针,失败返回NULL程序
若是有些程序要查看整个口令文件,则须要下面三个函数:im
#include <pwd.h>
struct passwd *getpwent(void);
返回值:成功返回指针,失败返回NULL
void setpwent(void);
void endpwent(void);
getpwent是查看口令文件中的一项内容,setpwent是定位到文件的开始处(至关于rewind函数),endpwent就是关闭口令文件。
组文件也差很少,结构上是这样:
其中最后一项的指针元素都是指向各个用户名,最后以空指针结束。
与口令文件的函数类似,POSIX.1也定义了两个函数来查看文件中的组ID和组名:
#include <grp.h>
struct group *getgrgid(gid_t gid);
struct group *getgrnam(const char *name);
返回值:成功返回指针,失败返回NULL
若是须要得知整个组文件的信息,也有相似口令文件的三个函数:
#include <grp.h>
struct group *getgrent(void);
返回值:成功返回指针,失败返回NULL
void setgernt(void);
void endgrent(void);