溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

保證Linux系統(tǒng)安全——賬號管理

發(fā)布時間:2020-07-05 15:35:56 來源:網(wǎng)絡(luò) 閱讀:477 作者:筱振 欄目:系統(tǒng)運維

不管是Windows操作系統(tǒng)還是Linux操作系統(tǒng),想要登錄系統(tǒng)必須要有合法的賬戶及密碼。本篇博文主要介紹Linux系統(tǒng)下的賬戶信息。

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

一、Linux系統(tǒng)的賬號及群組

作為Linux系統(tǒng)管理員,相當(dāng)重要的環(huán)節(jié)就是“管理賬號”。因為整個系統(tǒng)都是你在管理,并且所有系統(tǒng)的合法用戶的申請都需要你的同意以及分配相應(yīng)的權(quán)限,來完成日常工作。這就能看出“管理賬號”的重要性!

1.UID與GID

雖然我們用戶登錄Linux操作系統(tǒng)時,輸入的是我們的合法賬號,但是其實LInux操作系統(tǒng)并不會直接認識你的“賬號名稱”的,它僅僅認識賬戶所對應(yīng)的ID。至于賬戶的存在是為了讓人們可以更好地記憶。當(dāng)你登錄操作系統(tǒng)時,輸入的賬號信息,“Shell翻譯官”負責(zé)將找到賬戶對應(yīng)的ID號碼,系統(tǒng)才能決定該賬號是否可以登錄操作系統(tǒng)。

關(guān)于登錄時會有兩個ID號碼,來判斷你的身份信息,是否可以登錄操作系統(tǒng)。每個登錄的使用者至少都會具有兩個ID:一個是使用者ID(UID);一個是群組ID(GID)。

我們在對文件、目錄進行查看屬主、屬組時,非常友好的顯示出了用戶名、組名,但是系統(tǒng)也是根據(jù)UID、GID來進行判斷的。賬戶對應(yīng)的UID、GID存放在/etc/passwd文件中。

2.使用者賬號

Linux系統(tǒng)上的用戶如果需要登錄Linux操作系統(tǒng)來取得對應(yīng)的Shell環(huán)境進行工作時,需要經(jīng)過以下幾步:

  • 首先:查找/etc/passwd文件是否存在相應(yīng)的賬號信息,如果沒有則跳出;如果存在的話,則將該賬號對應(yīng)的UID與GID在/etc/passwd、/etc/group中讀取出來,另外,該賬號的宿主目錄及Shell環(huán)境也將一并讀取出來;
  • 其次:就是核對密碼是否正確。這時Linux系統(tǒng)會進入/etc/shadow文件中找出對應(yīng)的賬戶與UID,核對輸入的密碼是否正確;
  • 最后:如果上述條件都沒有問題的話,這是才會正常的登錄到Linux系統(tǒng)中;

當(dāng)用戶登錄Linux操作系統(tǒng)時,/etc/passwd、/etc/shadow文件是系統(tǒng)進行讀取的(這也是為什么非法操作者將特殊賬戶寫到/etc/passwd文件中的緣故)。所以如果想要備份Linux系統(tǒng)的賬號時,這兩個文件也一定需要備份!

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

(1)/etc/passwd文件結(jié)構(gòu)

/etc/passwd文件的構(gòu)造是這樣的:每一行都代表一個賬號、有幾行就表示系統(tǒng)中存在幾個賬號,里面很多賬號都是系統(tǒng)正常運行所需使用的,我們將其成為系統(tǒng)程序用戶。注意,這些賬號不可以隨意的進行刪除、修改等操作。

/etc/passwd文件的架構(gòu)是這樣的:
保證Linux系統(tǒng)安全——賬號管理

我們以root用戶為例,每段用“:”進行分隔,一共是7段。各段的含義如下:

  • 第一段:賬號名稱;就是我們用來正常登陸操作系統(tǒng)的名稱!需要對應(yīng)UID;
  • 第二段:密碼占位符;早期的UNIX操作系統(tǒng)的密碼就是存在在此的,但是因為這個文件一般的用戶都可以讀取,所以經(jīng)過Linux的發(fā)展,密碼信息后來存放在/etc/shadow文件中,但是此處會有一個“x”的標(biāo)志;
  • 第三段:賬戶所對應(yīng)的UID;關(guān)于UID的取值范圍如圖:
    保證Linux系統(tǒng)安全——賬號管理
  • 第四段:用戶所對應(yīng)的GID;這段信息與/etc/group文件信息有關(guān),用來規(guī)范組名與GID的對應(yīng)關(guān)系;
  • 第五段:用戶信息說明欄;這段信息就是用來解釋這個賬號的意義而已;
  • 第六段:用戶的宿主目錄;我們都知道,root用戶宿主目錄就是/root目錄,則普通用戶的宿主目錄在/home/用戶名;
  • 第七段:用戶登錄系統(tǒng)時所使用的Shell環(huán)境

(2)/etc/shadow文件結(jié)構(gòu)

/etc/shadow文件結(jié)構(gòu)也是一行對應(yīng)一個用戶信息,不過這個文件主要是用來存放用戶密碼信息的,同時這個文件中的內(nèi)容不允許隨意的進行修改、刪除等操作。文件結(jié)構(gòu)如下:
保證Linux系統(tǒng)安全——賬號管理

我們同樣以root用戶為例,每段用“:”進行分隔,一共是9段。各段的含義如下:

  • 第一段:賬號名稱;必須與/etc/passwd文件中的名稱對應(yīng)即可!
  • 第二段:密碼;這個字段才是真正的密碼,而且是經(jīng)過加密后密碼信息。這些加密信息也可以使用特殊的解密工具進行查看。所以/etc/shadow文件的權(quán)限一般是“-rw-------”或者“----------”,只有root用戶才可進行讀取、修改。注意這個文件的權(quán)限一般情況不建議亂動,否則可能會出現(xiàn)麻煩!
  • 第三段:最近更改密碼的日期;不過很奇怪,為什么是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
  • 第四段:密碼不可更改的天數(shù);表示這個賬號的密碼在最近一次修改之后,需要經(jīng)過多長時間才可以被修改。0表示隨時,99999表示不允許被修改;
  • 第五段:密碼需要重新變更的天數(shù)(有效期);強制更改密碼的天數(shù)。99999表示沒有限制;
  • 第六段:密碼變更期限前的警告天數(shù);如果是7的話,還有7天過期時,開始提醒;
  • 第七段:密碼過期后的賬號寬限時間(失效期);如果是7的話,表示密碼到期7天內(nèi)仍然可以使用,如果過期時,登錄操作系統(tǒng),會強制提示修改密碼;
  • 第八段:賬號失效日期;表示這個賬號在規(guī)定的日期之后,將不可被使用;
  • 第九段:保留;以備新功能的加入;

一般用戶密碼忘記之后,可以請系統(tǒng)管理員重新進行設(shè)置;但是root密碼忘記之后,就必須進行系統(tǒng)急救模式,重新設(shè)置!

3.有效群組與初始群組

通過使用者賬號,我們了解到了跟用戶有關(guān)的兩個文件:/etc/passwd、/etc/shadow文件,我們還需了解跟群組有關(guān)的兩個配置文件:/etc/group、/etc/gshadow文件。

(1)/etc/group文件結(jié)構(gòu)

/etc/group文件就是存放GID與組名的對應(yīng)關(guān)系的文件,文件結(jié)構(gòu)如下:
保證Linux系統(tǒng)安全——賬號管理

/etc/group文件同樣是每一行代表一個群組,也是使用“:”進行分隔,共四段,每段的含義:

  • 第一段:組名;與第三字段的GID相對應(yīng);
  • 第二段:群組密碼;同樣是密碼占位符,通常是系統(tǒng)管理員進行設(shè)置的;
  • 第三段:GID;就是/etc/passwd第四個字段所對應(yīng)的GID;
  • 第四段:此群組支持的賬號名稱;就是包含哪些用戶加入這個群組中;

我們來簡單的了解一下UID/GID與密碼之間的對應(yīng)關(guān)系,如圖:
保證Linux系統(tǒng)安全——賬號管理

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

/etc/passwd文件中第四個字段對應(yīng)的GID,就是所謂的初始群組;
使用“groups”命令可以查看其有效群組,如果一個用戶同時加入多個群組,查看的第一個群組名便是用戶的有效群組;可以使用“newgrp 群組名”進行有效群組的切換。使用“newgrp 群組名”命令時,會進入特殊的Shell環(huán)境中,設(shè)置完成之后,需要使用“exit”命令退出當(dāng)前Shell環(huán)境中。

(3)/etc/gshadow文件結(jié)構(gòu)

文件結(jié)構(gòu)如圖:
保證Linux系統(tǒng)安全——賬號管理

使用“:”分隔,也是四個字段,每個字段的含義:

  • 第一段:組名;
  • 第二段:密碼欄,開頭為“!”表示無合法密碼,所以無群組管理員;
  • 第三段:群組管理員的賬號;
  • 第四段:加入群組支持的所屬賬號;

二、賬號管理指令

(1)useradd命令

useradd命令,用于添加用戶。常用的參數(shù),如圖:
保證Linux系統(tǒng)安全——賬號管理
我們平時添加賬號時,如果沒有太多的需求,直接“useradd 用戶名”即可!這是因為系統(tǒng)已經(jīng)設(shè)置了很多默認值。

我們使用“useradd 用戶名”創(chuàng)建賬號時,系統(tǒng)會默認給我們做以下事情:

  • 在/etc/passwd文件中添加一行與賬號相關(guān)的數(shù)據(jù),包括建立UID/GID/宿主目錄等;
  • 在/etc/shadow文件中將此賬號的密碼相關(guān)參數(shù)寫入,但是尚未有密碼;
  • 在/etc/group文件中加入一個以賬號相同的組名;
  • 在/home目錄下建立一個與賬號同名的用戶家目錄,且權(quán)限為700;

我們可以使用“useradd -D”命令來查看系統(tǒng)所設(shè)置的默認值,如圖:
保證Linux系統(tǒng)安全——賬號管理

除了這些基本的賬號設(shè)定值之外,UID/GID還有密碼參數(shù)在/etc/login.defs文件中,如圖:
保證Linux系統(tǒng)安全——賬號管理
保證Linux系統(tǒng)安全——賬號管理

(2)passwd命令

passwd命令主要用于給用戶設(shè)置跟密碼相關(guān)的內(nèi)容,常用參數(shù)如圖:
保證Linux系統(tǒng)安全——賬號管理

(3)chage命令

chage命令主要用于設(shè)置更加詳細的密碼參數(shù)功能。具體參數(shù),如圖:
保證Linux系統(tǒng)安全——賬號管理

(4)usermod命令

usermod命令主要用于設(shè)置賬戶相應(yīng)的參數(shù),常用的參數(shù),如圖:
保證Linux系統(tǒng)安全——賬號管理

(5)userdel命令

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

(6)groupadd命令

groupadd命令用于添加新的用戶組,主要的參數(shù)有:
-g:后面接某個指定的GID;
-r:創(chuàng)建系統(tǒng)群組;

(7)groupmod命令

常用的參數(shù)有:
-g:修改既有的GID號;
-n:修改既有的群組名稱;

(8)groupdel命令

groupdel命令用于刪除群組!

(9)gpasswd命令

使用方法:“gpasswd 群組名”,常用的參數(shù),如圖:
保證Linux系統(tǒng)安全——賬號管理
關(guān)于群組管理員使用的參數(shù):
保證Linux系統(tǒng)安全——賬號管理

(10)id指令

主要用于查詢某人或自己的相關(guān)的UID/GID等信息。使用方法“id 用戶名”即可!

———————— 本文至此結(jié)束,感謝閱讀 ————————

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI