口令檔案
陰影口令
組檔案附屬組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...