1. 程式人生 > >《UNIX環境高級編程》讀書筆記之系統數據文件和信息(1)

《UNIX環境高級編程》讀書筆記之系統數據文件和信息(1)

返回 -m 獲取 高級編程 記得 clas oid data- size

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)