unix環境高階程式設計第六章筆記

2022-06-10 01:48:07 字數 1928 閱讀 7722

口令檔案

陰影口令

組檔案附屬組id

登入賬戶記錄

系統標識

/etc/passwd檔案是unix安全的關鍵檔案之一。該檔案用於使用者登入時校驗使用者的口令,檔案中每行的一般格式為:

使用者名稱: x :使用者id:使用者組id:說明資訊:個人主目錄:shell

對於第二項x來說是密碼,但由於安全原因密碼已經被移至其他檔案,因此使用x來代替。

#include struct passwd* getpwuid(uid_t __uid);

struct passwd* getpwnam(const char *__name);

函式成功是返回相應指標,出錯返回null。第乙個函式使用使用者uid,第二個函式使用使用者名稱。返回的指標指向乙個靜態變數,因此只要再呼叫任一相關的函式就會改寫指標所指向的變數內容。

上面兩個函式一次只能檢視乙個,而且必須提供使用者名稱或者使用者uid,如果想要檢視所有賬戶資訊或者事先不了解使用者名稱及使用者uid,則可以通過下面幾個函式來檢視。其標頭檔案及函式原型如下:

#include struct passwd *getpwent(void);

void setpwent(void);

void endpwent(void);

getpwent( )函式用於讀取passwd檔案(讀取一項),setpwent( )用於設定從passwd檔案頭部開始讀,endpwent( )用於關閉檔案。

陰影口令檔案/etc/shadow用於儲存加密後的密碼,該密碼加密方式是單向不可逆。shadow檔案普通使用者不允許讀取,訪問shadow檔案的一組函式與訪問passwd檔案函式類似。其標頭檔案及函式原型如下:

#include struct spwd *getspnam(const char *__name);

struct spwd *getspent(void);

void setspent(void);

void endspent(void);

函式成功是返回相應指標,出錯返回null。

#include struct group *getgrgid (gid_t __gid);

struct group *getgrnam (const char *__name);

函式成功是返回相應指標,出錯返回null。

如果需要搜尋整個組檔案,則類似passwd檔案函式。其標頭檔案及函式原型如下:

#include struct group *getgrent(void);

void setgrent(void);

void endgrent(void);

現有的unix都支援乙個使用者加入多個組,對於除了建立使用者時產生的自帶使用者組之外,使用者額外加入的其他組則為附屬組。為了獲取和設定附加組id,unix提供了3個函式。其標頭檔案及函式原型如下:

int getgroups (int __size, gid_t __list);

int setgroups (size_t __n, const gid_t *__groups);

int initgroups (const char *__user, gid_t __group);

unix系統還提供了一些事件簿記功能,該功能可以檢視當前登入到系統的各個使用者,還能跟蹤登入登出等事件。unix中利用乙個二進位制結構來填寫記錄。登入時,login程式將資訊寫入到utmp檔案和wtmp檔案中。登出時,init程序將utmp檔案中的記錄移除,並新增乙個新記錄到wtmp檔案中。

unix系統提供了乙個函式用於返回與主機和作業系統有關的資訊。其標頭檔案及函式原型如下:

#include int uname(struct utsname *__name);
函式成功時返回非負值,失敗返回-1。

UNIX環境高階程式設計第六章 讀後筆記

看了unix環境高階程式設計的第六章 系統資料檔案和資訊,現記錄讀後心得。本章主要介紹了系統資料檔案的結構和用途,以及在程式設計中讀取 設定的方式。開頭介紹了 etc passwd,即口令檔案。口令檔案中使用 分隔開各個字段,記錄了系統的現有的使用者名稱 使用者id 組id 主目錄 預設shell。...

第六章筆記

頂層const與底層const的區別 頂層const是指標物件本身是乙個常量,而底層const是指標所指的物件是乙個常量,理解起來就相當於前者是直接,後者是間接。宣告函式可以多次,但是每個形參只能用實參預設初始化一次,即後續宣告只可以為未預設初始化的形參新增預設實參,而且其形參右側的所有形參必須都有...

程式設計第六章總結

一 主要內容摘要 1 for語句 for 表示式1 表示式2 表示式3 迴圈體語句 用途 在迴圈頂部進行迴圈條件測試,如果迴圈條件第一次迴圈就為假,則迴圈體一次也不執行,即用於實現當型迴圈控制結構。適用於迴圈次數已知 技術控制的迴圈。例 輸出1 100之間所有偶數 include using nam...