《APUE》第6章笔记
這一章主要介紹了口令文件和組文件的結構和一些圍繞這些結構的函數。
口令文件即passwd就是在/etc/passwd中可以查閱。其結構是:
上圖四個平臺能支持的就用黑點表示。
因為加密口令這一項放在passwd這個人人可讀的文件中,可能會有安全問題。所以現在的Linux中的加密口令都是放在/etc/shadow中,只有root用戶才可以查看。而在passwd文件中加密口令這一項則顯示為x。(每一項都是用冒號隔開的)
?
POSIX.1就定義了兩個函數來讓我們獲取用戶名或者數值用戶ID。
#include <pwd.h>
struct passwd *getpwuid(uid_t uid);
struct passwd *getpwnam(const char *name);
返回值:成功返回指針,失敗返回NULL
如果有些程序要查看整個口令文件,則需要下面三個函數:
#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);
?
轉載于:https://www.cnblogs.com/fusae-blog/p/4278500.html
總結
以上是生活随笔為你收集整理的《APUE》第6章笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kung Fu Panda: Legen
- 下一篇: [转]Android 之 Window、