用戶認證
用戶使用賬戶登入Linux系統時,系統要對該賬戶進行3A認證,確實賬戶的身份,進行授權並且進行行爲的審計
3A: Authentication 認證 Authorization 授權 Accounting/Audition 審計
用戶及組的分類
系統管理員: root 0
普通用戶: 1-65535
系統用戶:1-499(centos6) 1-999(centos7)
登錄用戶:500+(centos6) 1000+(centos7)
圖1-1 Centos6
管理員組: root 0
普通組:
系統組:1-499(centos6) 1-999(centos7)
普通組:500+(centos6) 1000+(centos7)
圖1-2 Centos7
Linux組的類別
用戶的主組:
用戶必須屬於一個且只有一個主組
組名與用戶名相同,且僅包含一個用戶,私有組
圖2-1 用戶的主組
用戶的輔助組:
一個用戶可以屬於零個或多個輔助組
圖2-2 用戶的輔助組
用戶與組的相關配置文件
a./etc/passwd:用戶及其屬性信息
圖3-1 passwd文件
passwd文件組成部分:
username:password:uid:gid:gecos:homedirectory:shell
用戶名:密碼:UID:GID:註釋信息:家目錄:默認使用的shell
注:在以前的較早版本中,密碼是存放在此文件中,採用md5加密,任何可以讀到該文件的用戶都可以看到加密的密碼,隨着技術的發展,md5加密已經不再安全,所以之後的版本都將password加密密碼數據用x表示,真實的存放地址轉移到shadow文件中並且密碼的加密也採用了更加複雜的sha512加密,並且設置了嚴格的權限,加強了系統的安全性。
b./etc/shadow:用戶密碼存放信息 圖3-2 shadow文件
shadow文件組成部分:
name:password:lastday:minday:maxday:warnday:inactiveday:expirationday:
用戶名:密碼:最後修改時間:最小時間:最大時間:警告時間:不活躍時間:失效時間:保留字段
圖3-3 password時間線
注:shadow文件又稱影子文件,普通用戶是沒有權限進行查看的,只有管理員root(uid=0)纔有權限查看,密文密碼以$進行分割,第一個數字表示採用的哪種加密算法,如6表示採用的sha512加密算法,第二個$表示salt,即隨機數,這樣可以防止通過一樣的密文推算出密碼,加了salt,即使是同樣的密碼,也會因爲隨機數的原因,產生不一樣的加密密文,加強了密碼的安全性,後面的參數是對密碼有效期,過期期限及警告時間等等的設置。
c./etc/group:用戶組的相關屬性
圖3-4 group文件
group文件的組成部分:
groupname:password:gid:userlist
組名:密碼:組id:成員列表
注:組文件類似於passwd文件,不過該文件是用來存放組數據的,它包含了四部分,組名-密碼-gid-成員列表。出於與passwd一樣安全性的考慮,組密碼也不存放在該文件中,用x表示,成員列表記錄的是以此組作爲輔助組的用戶,所以成員列表中可以存在多個用戶帳號。
d./etc/gshadow:組密碼及其相關屬性
圖3-5 gshadow文件
gshadow文件組成部分
group name:encrypted password:administrator:userlist
組名:加密密碼:組管理員:組中成員
注:gshadow文件是用來存存放組密碼的文件,也是採用的sha512加密算法進行的加密,這邊不建議爲組設置組密碼,以保證它的安全性,當爲組設置了密碼後,組外的成員想進入到組時,系統就會提示輸入密碼,當其他用戶從其他渠道獲取了組密碼時,就可以進入到組中,獲取組中的數據和權限,但如果不爲組設置密碼,組外用戶想進入該組時就會變得相對困難,因爲系統不會提示要輸入密碼的相關信息,用戶沒有了輸入密碼的機會,就無法通過密碼進入到組中。組成員是以此組作爲輔助組的零個或多個用戶帳號。
5. 用戶和組管理命令
1.用戶管理命令
1.1 useradd:添加用戶 圖4-1 useradd幫助手冊
useradd是一個系統管理命令,用來創建新的用戶或者更新新用戶信息,下面是它的相關選項:
-u 指定UID,默認定義在/etc/login.defs
圖4-2 login.defs文件
-o 配合-u選項,不檢查UID唯一性
-g GID 指明用戶所屬的基本組,可以是組名,也可以是GID
-c 用戶的註釋信息
-d 用戶的家目錄路徑
-s 指定用戶使用的shell
-G 指定用戶的輔助組
-N 不創建自己的主組,將用戶添加到UID爲100的user組中
-M 不創建用戶的家目錄
-r 創建系統帳號
-D 顯示默認參數
圖4-3 useradd -D選項 圖4-4 useradd文件
1.2 usermod:修改用戶
圖4-5 usermod幫助手冊
-u UID 指定新的uid
-g GID 指定新的gid,基本組
-G 新輔助組,原來的輔助組會被覆蓋,若要保留,-a選項,表示添加
-s shell 指定新的默認shell
-c comment 新的註釋
-d home 新的家目錄,不會主動創建,配合-m選項可以創建新家目錄,並且移動原家目錄數據
-l login 新的登錄名
-L lock 鎖定賬戶
-U unlock 解鎖賬戶
-e yyyy-mm-dd 指定用戶帳號過期時間
-f inactive 設定非活動期限
1.3 userdel:刪除用戶
圖4-7 userdel幫助手冊
-r 刪除用戶家目錄
2. 組賬號管理命令
2.1 groupadd: 添加組帳號
圖4-8 groupadd幫助手冊
-g 指定gid
-r 創建系統組
Centos6(gid<500) Centos7(gid<1000)
2.2 groupmod: 組屬性修改
-n group_name 新名字
-g GID 新的GID
2.3 groupdel: 刪除組
圖4-10 groupdel幫助手冊
groupdel group
6.切換用戶命令
su [option...][-][args...]
su username 非登錄式切換:不會讀取目標的配置文件,不會改變當前工作目錄
圖5-2 su非登錄式切換
su - username 登錄時切換:會讀取用戶的配置文件,改變當前的工作目錄,完全切換
圖5-2 su登錄式切換
7.設置密碼passwd
passwd [option] username 修改指定用戶的密碼,僅root用戶有權限
passwd 修改自己的密碼
-l 鎖定用戶帳號
-u 解鎖用戶帳號
-e 強制用戶下次登錄修改密碼
-n 密碼最短使用時間
-x 最長使用期限
-w 提前警告天數
-i 非活動期限
--stdin 標準輸入接收密碼
圖6-2 passwd命令
8.修改密碼chage
chage 修改密碼用戶策略
-d last_day
-E 過期時間
-W 警告時間
-M 最長時間
-m 最短時間愛你
-l 顯示密碼策略
圖7-2 chage -l命令
9.查看和更改組成員groupmems
groupmems [option][action]
-g 更改指定組,僅root有權限
-a 指定用戶加入到組
-d 從組中刪除成員
-p 清楚組中所有成員
-l 顯示組中成員
圖8-1 groupmems命令