《APUE》第6章筆記

這一章主要介紹了口令文件和組文件的結構和一些圍繞這些結構的函數。安全

口令文件即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);

相關文章
相關標籤/搜索