1. 程式人生 > >系統資料檔案和系統資訊

系統資料檔案和系統資訊

一.口令檔案

       口令檔案(/etc/passwd)包含了使用者的資訊,如使用者名稱,使用者ID,登陸密碼等。由於該檔案人人可見,因此,登陸密碼只是一個佔位符x,真正的登陸密碼在其他檔案中。可通過vi檢視口令檔案,如下圖所示:

                                            

     為了阻止某使用者登入系統,可以將/bin/bash改為bin/false; bin/true;或bin/nologin.

     可以使用一些函式(引數為使用者ID或使用者名稱)獲取口令檔案中的資訊,會返回一個struct passwd結構指標(參APUE p142)。

二.陰影口令

     陰影口令用於存放加密後的使用者密碼,可以通過函式getspnam取得,但是隻限於擁有root許可權。程式碼示例如下:

#include <shadow.h>
#include <iostream>

int main(int argc, char *argv[])
{
    struct spwd* pwd = getspnam(argv[1]);
    std::cout<<pwd->sp_namp << "  " << pwd->sp_pwdp<<std::endl;

    return 0;
}

三.組檔案

      組檔案包含了組名,組ID,包含指向組成員使用者名稱的指標陣列和加密口令。可以使用函式通過引數組ID,組名返回struct group*指標,具體參考APUE p146。

四.時間和日期

       APUE p151介紹了幾個獲取時間即解釋時間的函式,muduo中使用的是gettimeofday以及gettime_r。p151的幾個時鐘型別不太明瞭