您好,登錄后才能下訂單哦!
不管是Windows操作系統還是Linux操作系統,想要登錄系統必須要有合法的賬戶及密碼。本篇博文主要介紹Linux系統下的賬戶信息。
博文大綱:
一、Linux系統的賬號及群組
1.UID與GID;
2.使用者賬號;
(1)/etc/passwd文件結構;
(2)/etc/shadow文件結構;
3.有效群組與初始群組;
(1)/etc/group文件結構;
(2)有效群組與初始群組;
(3)/etc/gshadow文件結構;
二、賬號管理指令;
(1)useradd命令
(2)passwd命令
(3)chage命令
(4)usermod命令
(5)userdel命令
(6)groupadd命令
(7)groupmod命令
(8)groupdel命令
(9)gpasswd命令
(10)id指令
作為Linux系統管理員,相當重要的環節就是“管理賬號”。因為整個系統都是你在管理,并且所有系統的合法用戶的申請都需要你的同意以及分配相應的權限,來完成日常工作。這就能看出“管理賬號”的重要性!
雖然我們用戶登錄Linux操作系統時,輸入的是我們的合法賬號,但是其實LInux操作系統并不會直接認識你的“賬號名稱”的,它僅僅認識賬戶所對應的ID。至于賬戶的存在是為了讓人們可以更好地記憶。當你登錄操作系統時,輸入的賬號信息,“Shell翻譯官”負責將找到賬戶對應的ID號碼,系統才能決定該賬號是否可以登錄操作系統。
關于登錄時會有兩個ID號碼,來判斷你的身份信息,是否可以登錄操作系統。每個登錄的使用者至少都會具有兩個ID:一個是使用者ID(UID);一個是群組ID(GID)。
我們在對文件、目錄進行查看屬主、屬組時,非常友好的顯示出了用戶名、組名,但是系統也是根據UID、GID來進行判斷的。賬戶對應的UID、GID存放在/etc/passwd文件中。
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系統的賬號時,這兩個文件也一定需要備份!
下面中重點介紹一下/etc/passwd/(存放用戶UID、GID)、etc/shadow(存放用戶密碼)的文件:
/etc/passwd文件的構造是這樣的:每一行都代表一個賬號、有幾行就表示系統中存在幾個賬號,里面很多賬號都是系統正常運行所需使用的,我們將其成為系統程序用戶。注意,這些賬號不可以隨意的進行刪除、修改等操作。
/etc/passwd文件的架構是這樣的:
我們以root用戶為例,每段用“:”進行分隔,一共是7段。各段的含義如下:
- 第一段:賬號名稱;就是我們用來正常登陸操作系統的名稱!需要對應UID;
- 第二段:密碼占位符;早期的UNIX操作系統的密碼就是存在在此的,但是因為這個文件一般的用戶都可以讀取,所以經過Linux的發展,密碼信息后來存放在/etc/shadow文件中,但是此處會有一個“x”的標志;
- 第三段:賬戶所對應的UID;關于UID的取值范圍如圖:
- 第四段:用戶所對應的GID;這段信息與/etc/group文件信息有關,用來規范組名與GID的對應關系;
- 第五段:用戶信息說明欄;這段信息就是用來解釋這個賬號的意義而已;
- 第六段:用戶的宿主目錄;我們都知道,root用戶宿主目錄就是/root目錄,則普通用戶的宿主目錄在/home/用戶名;
- 第七段:用戶登錄系統時所使用的Shell環境;
/etc/shadow文件結構也是一行對應一個用戶信息,不過這個文件主要是用來存放用戶密碼信息的,同時這個文件中的內容不允許隨意的進行修改、刪除等操作。文件結構如下:
我們同樣以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密碼忘記之后,就必須進行系統急救模式,重新設置!
通過使用者賬號,我們了解到了跟用戶有關的兩個文件:/etc/passwd、/etc/shadow文件,我們還需了解跟群組有關的兩個配置文件:/etc/group、/etc/gshadow文件。
/etc/group文件就是存放GID與組名的對應關系的文件,文件結構如下:
/etc/group文件同樣是每一行代表一個群組,也是使用“:”進行分隔,共四段,每段的含義:
- 第一段:組名;與第三字段的GID相對應;
- 第二段:群組密碼;同樣是密碼占位符,通常是系統管理員進行設置的;
- 第三段:GID;就是/etc/passwd第四個字段所對應的GID;
- 第四段:此群組支持的賬號名稱;就是包含哪些用戶加入這個群組中;
我們來簡單的了解一下UID/GID與密碼之間的對應關系,如圖:
/etc/passwd文件中第四個字段對應的GID,就是所謂的初始群組;
使用“groups”命令可以查看其有效群組,如果一個用戶同時加入多個群組,查看的第一個群組名便是用戶的有效群組;可以使用“newgrp 群組名”進行有效群組的切換。使用“newgrp 群組名”命令時,會進入特殊的Shell環境中,設置完成之后,需要使用“exit”命令退出當前Shell環境中。
文件結構如圖:
使用“:”分隔,也是四個字段,每個字段的含義:
- 第一段:組名;
- 第二段:密碼欄,開頭為“!”表示無合法密碼,所以無群組管理員;
- 第三段:群組管理員的賬號;
- 第四段:加入群組支持的所屬賬號;
useradd命令,用于添加用戶。常用的參數,如圖:
我們平時添加賬號時,如果沒有太多的需求,直接“useradd 用戶名”即可!這是因為系統已經設置了很多默認值。
我們使用“useradd 用戶名”創建賬號時,系統會默認給我們做以下事情:
- 在/etc/passwd文件中添加一行與賬號相關的數據,包括建立UID/GID/宿主目錄等;
- 在/etc/shadow文件中將此賬號的密碼相關參數寫入,但是尚未有密碼;
- 在/etc/group文件中加入一個以賬號相同的組名;
- 在/home目錄下建立一個與賬號同名的用戶家目錄,且權限為700;
我們可以使用“useradd -D”命令來查看系統所設置的默認值,如圖:
除了這些基本的賬號設定值之外,UID/GID還有密碼參數在/etc/login.defs文件中,如圖:
passwd命令主要用于給用戶設置跟密碼相關的內容,常用參數如圖:
chage命令主要用于設置更加詳細的密碼參數功能。具體參數,如圖:
usermod命令主要用于設置賬戶相應的參數,常用的參數,如圖:
userdel命令就是為了刪除用戶,常用的選項只有一個:
-r:連同用戶的宿主目錄一起刪除;
groupadd命令用于添加新的用戶組,主要的參數有:
-g:后面接某個指定的GID;
-r:創建系統群組;
常用的參數有:
-g:修改既有的GID號;
-n:修改既有的群組名稱;
groupdel命令用于刪除群組!
使用方法:“gpasswd 群組名”,常用的參數,如圖:
關于群組管理員使用的參數:
主要用于查詢某人或自己的相關的UID/GID等信息。使用方法“id 用戶名”即可!
———————— 本文至此結束,感謝閱讀 ————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。