前面我們介紹了軟件包管理。首先介紹了rpm包的相關命令,但是我們發現直接安裝rpm包會被其依賴性折磨的不行,然后解決辦法是yum在線管理,通過yum命令安裝rpm包能自動幫助我們解決依賴性。最后又介紹了源碼包和腳本安裝包,源碼包和前面講的RPM包安裝相比是比較麻煩的,而且重點介紹了源碼包和rpm包由於安裝位置的不同造成后面啟動相關服務的方法的區別。腳本安裝包其實就是人為的修改源碼包,使其成為一個自動安裝的腳本,安裝過程簡單。那么軟件包的介紹就結束了,本篇博客我們將學習用戶管理。
學習用戶管理之前,我們要知道越是對安全性高的服務器,越需要建立合理的用戶權限等級制度和服務器操作規范,而在Linux系統中主要是通過用戶配置文件來查看和修改用戶信息的。所以在講解用戶管理之前我們先講講用戶配置文件。
1、用戶信息文件:/etc/passwd
我們通過 vim /etc/passwd 命令,打開 passwd 文件:

上面的每一行代表一個用戶,我們以第一行為例:
root:x:0:0:root:/root:/bin/bash
上面的root用戶通過 : 分隔為 7 個字段。
①、第一個字段:root 表示用戶名稱
②、第二個字段:x 表示密碼標志,真正的密碼是存儲在 /etc/shadow 文件中,下面我們會詳細講解。
③、第三個字段:UID,用戶ID。這里我們需要說明的是在Linux系統中不一定root用戶是超級用戶,用戶id為0的才是超級用戶。
0:表示超級用戶,權限最大的用戶。
1-499:表示系統用戶(偽用戶),偽用戶是系統用來啟動相關服務和命令的,不能用來登錄系統,而且不能刪除,刪除偽用戶會造成一些命令不能使用。
500-65535:普通用戶。Linux內核2.6以后是可以支持232個用戶,基本上是不用擔心用戶不夠的。
④、第四個字段:GID,用戶初始組ID。這里需要理解初始組和用戶組的概念,初始組就是指用戶一登錄就立刻擁有這個用戶組的相關權限,每個用戶的初始組只能有一個,一般就是和這個用戶的用戶組相同的組名作為這個用戶的初始組。附加組值用戶可以加入多個其他的用戶組,並擁有這些組的權限,附加組可以有多個。
⑤、第五個字段:用戶說明
⑥、第六個字段:家目錄。
普通用戶:/home/用戶名/
超級用戶:/root/
⑦、第七個字段:登錄之后的 shell。shell后面我們會詳細介紹,這里簡單來說shell就是Linux的命令解釋器。
2、用戶密碼文件:/etc/shadow
我們通過 vim /etc/shadow 命令,打開 shadow文件:

同理上面的每一行和 passwd 文件一樣,都是表示一個用戶。passwd描述的是用戶信息,shadow文件描述的是用戶密碼。我們還是以第一行為例:
root:$6$bo3LXGTQ8SwsRa6J$.7qTM2GT8EmA8YSkHtIqlVefcUyOTdv3EBwJLA32U0qL/YHIOe0SQiacsNq4tSAN2zVbp0bvlOFP.sK0euPIg/:17324:0:99999:7:::
上面的root用戶通過 : 分隔為 9 個字段。
①、第一個字段:root 表示用戶名
②、第二個字段:root用戶的登錄加密密碼。
一、加密算法升級為 SHA512 散列加密算法
二、如果密碼位是“!!”或者“*”代表沒有密碼,不能登錄,基本上偽用戶都是沒有密碼的
③、第三個字段:密碼的最后一次修改日期。使用1970年1月1日作為標准時間,每過一天時間戳加1.
root 用戶的修改日期是17324。這里我們通過 date -d "1970-01-01 17324 days"進行換算:

④、第四個字段:兩次密碼的修改間隔時間(和第三字段相比)
⑤、第五個字段:密碼有效期(和第三字段相比)
⑥、第六個字段:密碼修改到期前的警告天數(和第五個字段進行比較)
⑦、第七個字段:密碼過期后的寬限天數(和第五個字段進行比較)
0:代表密碼過期后立即失效
-1:代表密碼永遠不會失效
⑧、第八個字段:賬號失效時間(要用時間戳表示)
⑨、第九個字段:保留字段
3、用戶組信息文件:/etc/group
我們通過 vim /etc/group 命令,打開 group文件:

一般創建一個用戶,立即創建一個和用戶名相同的用戶組,我們還是以第一行 root 為例:
root:x:0:
①、第一個字段:組名
②、第二個字段:組密碼標志,密碼文件存放在 /etc/gshadow 中
③、第三個字段:GID,組id
④、第四個字段:組中的附加用戶
4、用戶組密碼文件:/etc/gshadow

這個文件基本上不會用到
①、第一個字段:組名
②、第二個字段:組密碼
③、第三個字段:組管理員用戶名
④、第四個字段:組中的附加用戶
5、用戶的家目錄
①、普通用戶:/home/用戶名/,一般創建一個新用戶就會自動創建該家目錄。所有者和所屬組都是此用戶,權限是700。
②、超級用戶:/root/,所有者和所屬組都是root用戶,權限是550。注意看上去權限是550,其實權限對於超級用戶基本上是沒有限制的,所以這里給什么權限都沒多大區別。
6、用戶的郵箱
目錄是:
/var/spool/mail/用戶名/
7、用戶的模板目錄
目錄是:
/etc/skel
這個目錄是每創建一個新用戶,就會在其家目錄下自動創建 /etc/skel 目錄下的所有文件。
范例:我們在 /etc/skel 目錄下創建一個 hello 文件,然后創建一個新用戶 test,進入到 test 用戶的家目錄/home/test 就會看到有 hello 文件。

8、總結
本篇博客我們介紹了用戶管理的相關配置文件,包括用戶信息文件/etc/passwd,用戶密碼文件/etc/shadow;然后介紹了用戶組信息文件/etc/group,用戶組密碼文件/etc/gshadow。用戶的家目錄,以及用戶的模板目錄,這些我們需要了解即可,下一篇博客我們將學習用戶管理的相關命令。
