保證Linux系統安全——帳號管理

不論是Windows操做系統仍是Linux操做系統,想要登陸系統必需要有合法的帳戶及密碼。本篇博文主要介紹Linux系統下的帳戶信息。安全

博文大綱:
1、Linux系統的帳號及羣組
1.UID與GID;
2.使用者帳號;
(1)/etc/passwd文件結構;
(2)/etc/shadow文件結構;
3.有效羣組與初始羣組;
(1)/etc/group文件結構;
(2)有效羣組與初始羣組;
(3)/etc/gshadow文件結構;
2、帳號管理指令;
(1)useradd命令
(2)passwd命令
(3)chage命令
(4)usermod命令
(5)userdel命令
(6)groupadd命令
(7)groupmod命令
(8)groupdel命令
(9)gpasswd命令
(10)id指令 架構

1、Linux系統的帳號及羣組

做爲Linux系統管理員,至關重要的環節就是「管理帳號」。由於整個系統都是你在管理,而且全部系統的合法用戶的申請都須要你的贊成以及分配相應的權限,來完成平常工做。這就能看出「管理帳號」的重要性!ide

1.UID與GID

雖然咱們用戶登陸Linux操做系統時,輸入的是咱們的合法帳號,可是其實LInux操做系統並不會直接認識你的「帳號名稱」的,它僅僅認識帳戶所對應的ID。至於帳戶的存在是爲了讓人們能夠更好地記憶。當你登陸操做系統時,輸入的帳號信息,「Shell翻譯官」負責將找到帳戶對應的ID號碼,系統才能決定該帳號是否能夠登陸操做系統。工具

關於登陸時會有兩個ID號碼,來判斷你的身份信息,是否能夠登陸操做系統。每一個登陸的使用者至少都會具備兩個ID:一個是使用者ID(UID);一個是羣組ID(GID)。加密

咱們在對文件、目錄進行查看屬主、屬組時,很是友好的顯示出了用戶名、組名,可是系統也是根據UID、GID來進行判斷的。帳戶對應的UID、GID存放在/etc/passwd文件中。操作系統

2.使用者帳號

Linux系統上的用戶若是須要登陸Linux操做系統來取得對應的Shell環境進行工做時,須要通過如下幾步:翻譯

  • 首先:查找/etc/passwd文件是否存在相應的帳號信息,若是沒有則跳出;若是存在的話,則將該帳號對應的UID與GID在/etc/passwd、/etc/group中讀取出來,另外,該帳號的宿主目錄及Shell環境也將一併讀取出來;
  • 其次:就是覈對密碼是否正確。這時Linux系統會進入/etc/shadow文件中找出對應的帳戶與UID,覈對輸入的密碼是否正確;
  • 最後:若是上述條件都沒有問題的話,這是纔會正常的登陸到Linux系統中;

當用戶登陸Linux操做系統時,/etc/passwd、/etc/shadow文件是系統進行讀取的(這也是爲何非法操做者將特殊帳戶寫到/etc/passwd文件中的緣故)。因此若是想要備份Linux系統的帳號時,這兩個文件也必定須要備份!3d

下面中重點介紹一下/etc/passwd/(存放用戶UID、GID)、etc/shadow(存放用戶密碼)的文件:code

(1)/etc/passwd文件結構

/etc/passwd文件的構造是這樣的:每一行都表明一個帳號、有幾行就表示系統中存在幾個帳號,裏面不少帳號都是系統正常運行所需使用的,咱們將其成爲系統程序用戶。注意,這些帳號不能夠隨意的進行刪除、修改等操做。blog

/etc/passwd文件的架構是這樣的:
保證Linux系統安全——帳號管理

咱們以root用戶爲例,每段用「:」進行分隔,一共是7段。各段的含義以下:

  • 第一段:帳號名稱;就是咱們用來正常登錄操做系統的名稱!須要對應UID;
  • 第二段:密碼佔位符;早期的UNIX操做系統的密碼就是存在在此的,可是由於這個文件通常的用戶均可以讀取,因此通過Linux的發展,密碼信息後來存放在/etc/shadow文件中,可是此處會有一個「x」的標誌;
  • 第三段:帳戶所對應的UID;關於UID的取值範圍如圖:
    保證Linux系統安全——帳號管理
  • 第四段:用戶所對應的GID;這段信息與/etc/group文件信息有關,用來規範組名與GID的對應關係;
  • 第五段:用戶信息說明欄;這段信息就是用來解釋這個帳號的意義而已;
  • 第六段:用戶的宿主目錄;咱們都知道,root用戶宿主目錄就是/root目錄,則普通用戶的宿主目錄在/home/用戶名;
  • 第七段:用戶登陸系統時所使用的Shell環境

(2)/etc/shadow文件結構

/etc/shadow文件結構也是一行對應一個用戶信息,不過這個文件主要是用來存放用戶密碼信息的,同時這個文件中的內容不容許隨意的進行修改、刪除等操做。文件結構以下:
保證Linux系統安全——帳號管理

咱們一樣以root用戶爲例,每段用「:」進行分隔,一共是9段。各段的含義以下:

  • 第一段:帳號名稱;必須與/etc/passwd文件中的名稱對應便可!
  • 第二段:密碼;這個字段纔是真正的密碼,並且是通過加密後密碼信息。這些加密信息也可使用特殊的解密工具進行查看。因此/etc/shadow文件的權限通常是「-rw-------」或者「----------」,只有root用戶纔可進行讀取、修改。注意這個文件的權限通常狀況不建議亂動,不然可能會出現麻煩!
  • 第三段:最近更改密碼的日期;不過很奇怪,爲何是18167呢?這是由於計算Linux日期的時間是1970年1月1號做爲1的累加日期,計算方法以下:
    [root@localhost ~]# awk -F : '{print $1,$3}' /etc/shadow | grep root
    root 18167
    [root@localhost ~]# date -d "1970-1-1 18167 days" "+%Y/%m/%d %H:%m:%s"
    2019/09/28 00:09:1569600000
  • 第四段:密碼不可更改的天數;表示這個帳號的密碼在最近一次修改以後,須要通過多長時間才能夠被修改。0表示隨時,99999表示不容許被修改;
  • 第五段:密碼須要從新變動的天數(有效期);強制更改密碼的天數。99999表示沒有限制;
  • 第六段:密碼變動期限前的警告天數;若是是7的話,還有7天過時時,開始提醒;
  • 第七段:密碼過時後的帳號寬限時間(失效期);若是是7的話,表示密碼到期7天內仍然可使用,若是過時時,登陸操做系統,會強制提示修改密碼;
  • 第八段:帳號失效日期;表示這個帳號在規定的日期以後,將不可被使用;
  • 第九段:保留;以備新功能的加入;

通常用戶密碼忘記以後,能夠請系統管理員從新進行設置;可是root密碼忘記以後,就必須進行系統急救模式,從新設置!

3.有效羣組與初始羣組

經過使用者帳號,咱們瞭解到了跟用戶有關的兩個文件:/etc/passwd、/etc/shadow文件,咱們還需瞭解跟羣組有關的兩個配置文件:/etc/group、/etc/gshadow文件。

(1)/etc/group文件結構

/etc/group文件就是存放GID與組名的對應關係的文件,文件結構以下:
保證Linux系統安全——帳號管理

/etc/group文件一樣是每一行表明一個羣組,也是使用「:」進行分隔,共四段,每段的含義:

  • 第一段:組名;與第三字段的GID相對應;
  • 第二段:羣組密碼;一樣是密碼佔位符,一般是系統管理員進行設置的;
  • 第三段:GID;就是/etc/passwd第四個字段所對應的GID;
  • 第四段:此羣組支持的帳號名稱;就是包含哪些用戶加入這個羣組中;

咱們來簡單的瞭解一下UID/GID與密碼之間的對應關係,如圖:
保證Linux系統安全——帳號管理

(2)有效羣組與初始羣組

/etc/passwd文件中第四個字段對應的GID,就是所謂的初始羣組;
使用「groups」命令能夠查看其有效羣組,若是一個用戶同時加入多個羣組,查看的第一個羣組名即是用戶的有效羣組;可使用「newgrp 羣組名」進行有效羣組的切換。使用「newgrp 羣組名」命令時,會進入特殊的Shell環境中,設置完成以後,須要使用「exit」命令退出當前Shell環境中。

(3)/etc/gshadow文件結構

文件結構如圖:
保證Linux系統安全——帳號管理

使用「:」分隔,也是四個字段,每一個字段的含義:

  • 第一段:組名;
  • 第二段:密碼欄,開頭爲「!」表示無合法密碼,因此無羣組管理員;
  • 第三段:羣組管理員的帳號;
  • 第四段:加入羣組支持的所屬帳號;

2、帳號管理指令

(1)useradd命令

useradd命令,用於添加用戶。經常使用的參數,如圖:
保證Linux系統安全——帳號管理
咱們平時添加帳號時,若是沒有太多的需求,直接「useradd 用戶名」便可!這是由於系統已經設置了不少默認值。

咱們使用「useradd 用戶名」建立帳號時,系統會默認給咱們作如下事情:

  • 在/etc/passwd文件中添加一行與帳號相關的數據,包括創建UID/GID/宿主目錄等;
  • 在/etc/shadow文件中將此帳號的密碼相關參數寫入,可是還沒有有密碼;
  • 在/etc/group文件中加入一個以帳號相同的組名;
  • 在/home目錄下創建一個與帳號同名的用戶家目錄,且權限爲700;

咱們可使用「useradd -D」命令來查看系統所設置的默認值,如圖:
保證Linux系統安全——帳號管理

除了這些基本的帳號設定值以外,UID/GID還有密碼參數在/etc/login.defs文件中,如圖:
保證Linux系統安全——帳號管理
保證Linux系統安全——帳號管理

(2)passwd命令

passwd命令主要用於給用戶設置跟密碼相關的內容,經常使用參數如圖:
保證Linux系統安全——帳號管理

(3)chage命令

chage命令主要用於設置更加詳細的密碼參數功能。具體參數,如圖:
保證Linux系統安全——帳號管理

(4)usermod命令

usermod命令主要用於設置帳戶相應的參數,經常使用的參數,如圖:
保證Linux系統安全——帳號管理

(5)userdel命令

userdel命令就是爲了刪除用戶,經常使用的選項只有一個:
-r:連同用戶的宿主目錄一塊兒刪除;

(6)groupadd命令

groupadd命令用於添加新的用戶組,主要的參數有:
-g:後面接某個指定的GID;
-r:建立系統羣組;

(7)groupmod命令

經常使用的參數有:
-g:修改既有的GID號;
-n:修改既有的羣組名稱;

(8)groupdel命令

groupdel命令用於刪除羣組!

(9)gpasswd命令

使用方法:「gpasswd 羣組名」,經常使用的參數,如圖:
保證Linux系統安全——帳號管理
關於羣組管理員使用的參數:
保證Linux系統安全——帳號管理

(10)id指令

主要用於查詢某人或本身的相關的UID/GID等信息。使用方法「id 用戶名」便可!

———————— 本文至此結束,感謝閱讀 ————————

相關文章
相關標籤/搜索