一、安全上下文
Linux中,能夠實現資源使用和完成任務的主體是應用程序進程,進程是以發起者的身份運行的,每個進程的擁有者就是它的發起者,進程會被標記上發起者的身份信息用於驗證權限。當進程試圖訪問資源的時候,安全上下文(Secure Context)會比對進程的所有者和資源的所有者之間的關係。
首先,查看進程的所有者是否和資源所有者爲同一用戶,若是,則按照所有者擁有的權限來使用資源;
如果不是,則判斷進程的所有者是否屬於該資源所屬組的成員,若是,則按照所屬組的權限來使用資源;
如果不是,就按照最爲普通的用戶權限來使用資源。
二、用戶賬戶:實現操作者和計算機交互式操作的基礎,是操作者的身份在滿足了驗證條件之後的計算機系統中的映射
1.用戶賬戶分類
超級用戶(管理員):root
普通用戶:
系統用戶(非登錄用戶):
爲了保證安全,某些進程或服務必須以非管理員的用戶身份運行,這類非管理員用戶稱爲系統用戶,此類用戶一般不允許登錄到系統
登錄用戶:
能夠通過登錄行爲驗證身份而獲得資源訪問權限的用戶
2.用戶賬戶的標識名稱
登錄名稱:字符串標識
UID:爲計算機操作系統提供的數字標識符號,範圍爲0~2^32-1
超級用戶:
用戶名:root
UID:0
普通用戶:
系統用戶:
Centos 6-:1~499
Centos 7+:1~999
登錄用戶:
Centos 6-:500+
Centos 7+:1000+
注意,60000+的UID通常需要用戶自定義標識
三、名稱解析
在用戶使用登陸名稱登陸系統的時候系統會對登陸名稱使用解析庫(/etc/passwd)進行解析(名字 <---> UID)利用解析庫完成認證機制,驗證登陸用戶輸入的登陸名稱是否存在。在系統確定用戶存在之後就會在用戶的認證信息庫(/etc/shadow)中查找用戶的信息,找到這個用戶的權限等信息後允許其登陸。
默認的認證機制:密碼認證
在linux中,保存到認證庫的密碼是經過單向加密算法處理過的,一共有六種,分別爲MD5、sha1、sha224、sha256、sha384、sha512,六種算法在認證庫中以$1~$6表示,加密算法會在你輸入的原始密碼後加上salt再進行加密計算,salt爲隨機字符串,認證庫中密碼的最終形態爲:算法 + salt + 單向加密的結果字符串
四、組賬戶:將多個用戶聯繫一起以便集中授權的容器
1.組的分類
超級用戶組
普通用戶組
系統用戶組
登錄用戶組
2.組賬戶的標識方法
組賬戶名稱
GID
超級用戶組:0
系統用戶組:
CentOS 6-:1~499
CentOS 7+:1~999
登錄用戶組:
CentOS 6-:500+
CentOS 7+:1000+
linux中,每個用戶賬戶必須至少屬於一個組,用戶賬戶的GID標識稱爲用戶的主要組(基本組),每個用戶必須要有且僅有一個主要組;用戶賬戶也可以添加多個附加組
五、與組相關的命令
1.groupadd 創建一個新組
-g GID 指定要創建組的GID
-r 將組創建爲系統組,此時應該保證GID在系統組範圍內
2.groupdel 刪除一個組
如果一個組是某個用戶的主要組,則該組不能刪除
3.groupmod
-g GID 修改指定組的GID
-n NAME 修改指定組的組賬戶名稱
六、與用戶賬戶相關的命令
1.useradd 創建一個新用戶或更新默認新用戶信息
-c 爲用戶添加註釋信息
-d 爲用戶指定家目錄的路徑
-e 設定用戶密碼的絕對過期時間
-f 設定用戶密碼使用達到最大時間後的寬限期
-g 爲用戶指明GID,如果不寫此選項,系統會創建一個與用戶名相同的組並將其設置爲用戶的主要組
-G 爲用戶添加附加組
-m 必須爲用戶創建家目錄
-M 一定不爲用戶創建家目錄
-r 創建系統用戶
-s 爲用戶指定默認shell
-u 爲用戶指定UID
2.userdel 刪除用戶賬戶和相關文件
-r 刪除用戶的同時刪除用戶的家目錄及用戶郵箱文件
3.usermod
-c 修改用戶註釋信息
-d 修改用戶家目錄
-e 修改用戶密碼過期的絕對日期
-f 修改用戶密碼過期寬限期
-g 修改用戶的主要組
-G 修改用戶的附加組
-l 修改用戶的登錄名
-s 修改用戶的登錄shell
-u 鎖定用戶的UID
-L 鎖定用戶
-U 解鎖用戶
4.passwd 修改用戶密碼相關信息
-l 鎖定用戶
-u 解鎖用戶
-d 刪除用戶的密碼,也可用於解除用戶鎖定,因爲在認證庫中在密碼前表示鎖定用戶的!符號被一併刪除
-e 直接設置用戶密碼過期
-n 用戶密碼的最短使用時常,默認值爲0
-x 用戶密碼的最長使用時常,默認值爲99999
-w 用戶密碼過期之前多少天開始發送警告信息
-i 用戶密碼過期之後的寬限期
-S 查看用戶密碼的狀態信息
5.chage 更改用戶密碼過期信息
-d 上一次更改的日期
-E 賬號到期的日期
-I 密碼過期之後鎖定賬號的天數
-l 列出用戶以及密碼的有效期
-m 密碼可以更改至少需要多少天
-M 密碼保持有效的最大天數
-W 用戶密碼過期之前多少天開始發送警告信息
6.chsh 更改賬戶shell,相當於usermod -s
7.finger 查找並顯示用戶信息
8.id 顯示用戶賬戶信息
-u 顯示用戶有效的UID
-g 顯示用戶有效的GID
-n 顯示名稱
9.su 切換用戶賬戶
-,-l 以後面的用戶身份登錄到系統
-c "COMMAND" 以前面指定的用戶身份運行COMMAND,不進行身份登錄切換