1. 程式人生 > >Linux 使用者登入資訊相關函式

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 *getspnam(const char *name);          函式功能:通過使用者名稱獲得一個struct spwd結構體

       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);

        函式功能: