APUE 口令文件相關

linux中包含/etc/passwd(下稱口令文件) 和陰影口令文件

在linux最初密碼字放在口令文件中,而這個文件是人人可讀的,缺少安全性!故現在系統一般放於陰影口令中!口令文件只存放一個X,或者*佔位符!

陰影口令是一個單項加密處理過的用戶口令副本!

口令文件中,各個字段按:分隔,這些字段包含在<pwd.h>的passwd結構體中

root:X:0:0:root:/root:/bin/bash

用戶名             char *pw_name

加密口令         char *passwd

用戶ID             uid_t pw_uid

組ID                gid_t pw_gid

註釋                //用戶的地址 號碼之類的信息

初試工作目錄 char * pw_shell

shell目錄        char *pw_dir

用戶訪問類     

下次口令更改時間 time_t change

賬戶有效時間


讀取特定id的psswd信息

<pre name="code" class="cpp">#include <pwd.h>
struct psswd* getpwuid(uit_t uid);//根據uid 返回psswd結構體
struct psswd* getpegid(gid_t gid);//根據gid返回


psswd是一個靜態變量,so要修改是賦值到臨時變量


以下可以用於讀取個口令文件信息

#include <pwd.h>
struct psswd* getpwent(void);//返回當前指向的嚇一跳pwd,當文件到尾時返回NULL,可循環逐條讀取pwd信息

void setpwent(void);//定位到文件起始處
void endpwent(void);//關閉文件

一般度getpwent之前先調用setpwent 確保當前指向文件最開始

最後用endpwdent關閉文件


陰影口令

#include <shadow.h>
struct spwd *getspent();//返回當前指向的嚇一跳pwd,當文件到尾時返回NULL,可循環逐條讀取pwd信息

void setspwent(void);//定位到文件起始處
void endspwent(void);//關閉文件









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章