《UNIX環境高級編程》讀書筆記之系統數據文件和信息(1)
1.UNIX系統口令文件包括了下圖所看到的的各字段,這些字段包括在<pwd.h>中定義的passwd結構體中
POSIX定義了兩個獲取口令文件項的函數。
在給出用戶登錄名或用戶ID後。這兩個函數就能查看相關項。
#include <pwd.h>
struct passwd *getpwuid(uid_t uid);
struct passwd *getpwnam(const char *name);
假設想要查看整個口令文件,則要用到以下三個函數:
#include <pwd.h>
struct passwd *getpwent(void);//返回口令文件裏的下一記錄
void setpwent(void);//定位口令文件到開口處
void endpwent(void);//關閉口令文件。打開口令文件之後,一定要記得關閉口令文件
2.為了安全的考慮,非常多系統將加密口令存放在一個稱為陰影口令文件的地方。
文件裏存放的字段例如以下圖:
與訪問口令文件的一組函數相似,有還有一組函數能夠訪問陰影口令文件。
#include <shadow.h>
struct spwd *getspnam(const char *name);
struct spwd *getspent(void);
void setspent(void);
void endspent(void);
3.組文件
UNIX組文件包括下圖所看到的的字段。這些字段也包括在<grp.h>中定義的group結構中。
POSIX定義下列兩個函數來依據username或用戶ID來查找用戶所屬組的信息。
#include <grp.h>
struct group *getgrgid(gid_t gid);
struct group *getgrnam(const char *name);
與訪問口令文件類似。
假設要訪問整個組文件,則要用到下列三個函數:
#include <grp.h>
struct group *getgrent(void);
void setgrent(void);
void endgrent(void);
《UNIX環境高級編程》讀書筆記之系統數據文件和信息(1)