UNIX程式設計 6 系統資料檔案和資訊

2021-08-31 13:05:44 字數 2326 閱讀 3572

1.口令檔案

口令檔案儲存在/etc/passwd中,是乙個ascii檔案

用使用者名稱或uid獲取passwd結構體資訊的函式

#include

struct passwd *getpwuid(uid_t uid);

struct passwd *getpwnam(const char *name);

獲取口令檔案中所有內容

#include

struct passwd *getpwent(void);

returns: pointer if ok, null on error or end of file

void setpwent(void);

void endpwent(void);

2.陰影口令

某些系統將加密口令存放在乙個通常稱為陰影的檔案裡面

訪問陰影口令檔案的函式

#include

struct spwd *getspnam(const char *name);

struct spwd *getspent(void);

both return: pointer if ok, null on error

void setspent(void);

void endspent(void);

3.組檔案

組的資訊存放在/etc/group檔案中

檢視組資訊的函式

#include

struct group *getgrgid(gid_t gid);

struct group *getgrnam(const char *name);

檢視整個組檔案的函式

#include

struct group *getgrent(void);

returns: pointer if ok, null on error or end of file

void setgrent(void);

void endgrent(void);

獲取和設定附加組函式

#include

int getgroups(int gidsetsize, gid_t grouplist);

returns: number of supplementary group ids if ok, 1 on error

#include /* on linux */

#include /* on freebsd, mac os x, and

solaris */

int setgroups(int ngroups, const gid_t grouplist);

#include /* on linux and solaris */

#include /* on freebsd and mac os x */

int initgroups(const char *username, gid_t basegid);

4.登入賬號記錄

系統都提供下列兩個資料檔案:utmp檔案,它記錄當前登入進系統的各個使用者

wtmp檔案,它跟蹤各個登入和登出事件

5.系統標識

獲取當前主機和作業系統相關的資訊的函式

#include

int uname(struct utsname *name);

7.時間和日期

unix核心提供的時間是從2023年1月1日00:00:00以來經過的秒數

#include

time_t time(time_t *calptr);

#include

int gettimeofday(struct timeval *restrict tp, void

*restrict tzp);

日期間的轉換和格式化

[img]

#include

struct tm *gmtime(const time_t *calptr);

struct tm *localtime(const time_t *calptr);

#include

time_t mktime(struct tm *tmptr);

#include

char *asctime(const struct tm *tmptr);

char *ctime(const time_t *calptr);

#include

size_t strftime(char *restrict buf, size_t maxsize,

const char *restrict format,

const struct tm *restrict tmptr);

Unix環境高階程式設計 系統資料檔案和資訊

unix口令檔案 etc passwd 包含了下表所示的字段 系統定義了兩個獲取口令檔案項的函式,在給出使用者登入名或數值使用者id後,這兩個函式能夠檢視相關項。struct passwd getpwuid uid t uid struct passwd getpwnam const char na...

Unix環境高階程式設計 系統資料檔案和資訊

登入名 使用者在登入unix系統時,先鍵入登入名,然後鍵入口令。系統在其口令檔案 通常是 etc passwd檔案 中檢視登入名。口令檔案中的登入項由7個以冒號分隔的字段組成,依次是 登入名 加密口令 數字使用者id 205 數字組id 105 注釋字段 起始目錄 home sar 以及shell程...

linux c程式設計 系統資料檔案和資訊

linux系統相關的檔案資訊包含在 etc passwd 檔案和 etc group 中。每次登入 linux 系統以及每次執行 ls l 命令時都要使用口令檔案。這些欄位都包含在 中定義的 passwd 結構中。struct passwd 使用方法如下 void getspnam function...