Linux 使用者登入資訊相關函式
整理Linux中登入相關資訊的函式
1、/etc/passwd檔案操作的相關函式
struct passwd {
char *pw_name; /* username */
char *pw_passwd; /* user password */
uid_t pw_uid; /* user ID */
gid_t pw_gid; /* group ID */
char *pw_gecos; /* user information */
char *pw_dir; /* home directory */
char *pw_shell; /* shell program */
};
struct passwd *getpwnam(const char *name); 函式功能:通過傳入的使用者名稱稱得到struct passwd結構體
struct passwd *getpwuid(uid_t uid); 函式功能:通過傳入的使用者的UID得到struct passwd結構體
下面的一組函式用來從/etc/passwd檔案中順序獲取每行的資訊
struct passwd *getpwent(void); 函式功能:每次獲得一行資訊,並且自動換行
void setpwent(void); 函式功能:將getpwent獲取的位置設為檔案開始位置
void endpwent(void); 函式功能:用來關閉由getpwent()所開啟的密碼檔案。
2、/etc/shadow檔案操作的相關函式
struct spwd {
char *sp_namp; /* Login name */
char *sp_pwdp; /* Encrypted password */
long sp_lstchg; /* Date of last change (measured
in days since 1970-01-01 00:00:00 +0000 (UTC)) */
long sp_min; /* Min # of days between changes */
long sp_max; /* Max # of days between changes */
long sp_warn; /* # of days before password expires
to warn user to change it */
long sp_inact; /* # of days after password expires
until account is disabled */
long sp_expire; /* Date when account expires (measured
in days since 1970-01-01 00:00:00 +0000 (UTC)) */
unsigned long sp_flag; /* Reserved */
};
struct spwd *getspent(void); 函式功能:每次獲得一行資訊,並且自動換行
void setspent(void); 函式功能:將getpwent獲取的位置設為檔案開始位置
void endspent(void); 函式功能:用來關閉由getpwent()所開啟的密碼檔案。
3、其他和密碼相關的函式
char *getpass( const char *prompt); 函式功能:呼叫函式的時候,prompt的內容會被輸出到中端,
然後接受 一個字串,並且返回這個字串。
char *crypt_r(const char *key, const char *salt)
char *crypt_r(const char *key, const char *salt,struct crypt_data *data);
函式功能: