用戶和組管理
用戶賬戶
組賬戶
權限分配
Cisco開發並建立了AAA認證體系:
Authentication:認證,覈實使用者身份;
Authorization:授權,對已經覈實身份的使用者進行資源分配;
Accounting:審計,監管資源被使用的情況;
多任務,多用戶操作系統;
能夠實現資源使用和完成任務的主體是:應用程序進程;
安全上下文:Secure Context
進程是以其發起者的身份運行的;可以理解爲,進程的所有者就是其發起者;每個進程上都會標記上其所有者的身份信息;
當進程試圖訪問資源的時候,安全上下文會比對進程的所有者和資源的所有者之間的關係:
首先,查看進程的所有者是否和資源的所有者爲同一用戶,如果是,就按照所有者擁有的權限來使用資源;
如果不是,則判斷進程的所有者是否屬於該資源所屬組的成員;如果是,按照所屬組的權限來使用資源;
如果不是,就按照最爲普通的其他用戶的權限來使用資源;
用戶賬戶:實現操作者和計算機交互式操作的基礎,是操作者的身份在滿足了驗證條件之後的計算機系統中的映射;
用戶賬戶分類:
超級用戶(管理員):root
普通用戶:
系統用戶(非登錄用戶):
爲了保證安全,往往會讓某些進程或服務必須以非管理員的用戶身份運行;這類非管理員用戶,稱爲系統用戶;此類用戶一般不允許登錄到系統的;
登錄用戶
能夠通過登錄行爲驗證用戶身份進而獲得資源訪問權限並可以對資源進行操作的用戶,可以稱爲登錄用戶;
用戶賬戶的標識方式:
用戶登錄名稱:
爲操作者提供的簡單易記的字符串標識;
用戶的數字ID(UID):
爲計算機操作系統提供的標準的數字標識符號,0~2^32-1
超級用戶:
用戶名:root
UID:0
普通用戶:
系統用戶:
CentOS 6-:1~499
CentOS 7+:1~999
登錄用戶
CentOS 6-:500+
CentOS 7+:1000+
注意:60000+的UID通常需要用戶自定義標識;
名稱解析:
用戶名 <--> UID
用戶名解析庫:/etc/passwd
操作系統中的認證組件通過解析庫實現認證機制,即驗證登錄用戶是否爲已經存在的用戶;
用戶的認證庫:/etc/shadow
通過此前的解析庫認定用戶是存在的,再經過認證庫的認證,來證明登錄用戶就是其聲明的用戶;
默認的認證機制:密碼認證;
密碼複雜性要求:
1.儘量避免使用有規律的或者來源於字典中的字符串作爲密碼;
2.密碼要足夠長,一般不得少於6個字符;
3.密碼要足夠複雜,其中應該至少包括大寫字母,小寫字母,數字及其他符號中的三類;
4.不定期更換,每隔一段時間進行密碼更換;
在Linux中,保存到認證庫的密碼是經過單向加密算法處理過的;
能夠加密密碼的算法:
MD:
MD5,Message Digest Version 5,消息摘要算法第5版;
128位定長輸出;
SHA:Secure Hash Algorithm,安全的哈希算法;
sha1:160加密輸出
sha224:
sha256:
sha384:
sha512:默認的加密算法;
salt:通過隨機算法計算得到的隨機數;
隨機數的生成裝置:
/dev/random:
僅僅從熵池中返回隨機數;如果熵池中隨機數耗盡,進程會被阻塞;
/dev/urandom:
首先試圖從熵池中返回隨機數,如果熵池中隨機數耗盡,則利用僞隨機數生成器生成僞隨機數;
在認證庫中的密碼的最終形態:算法+salt+加密字符串;
算法:$1~$6
salt:$隨機字符串
加密字符串:$單向加密的結果
組賬戶:將具有某些相同或相似屬性的用戶聯繫在一起以便可以集中授權的容器;
組的分類:
超級用戶組
普通用戶組
系統用戶組
登錄用戶組
組賬戶的標識方法:
組賬戶名稱:
組賬戶ID(GID):
超級用戶組:0
系統用戶組:
CentOS 6-:1~499
CentOS 7+:1~999
登錄用戶組:
CentOS 6-:500+
CentOS 7+:1000+
組名解析:
解析庫:/etc/group
認證庫:/etc/gshadow
組也需要使用密碼加密保護;
用戶賬戶和組賬戶之間的關係:
在Linux中,每個用戶必須至少屬於一個組;
用戶賬戶的GID標識被稱爲用戶的主要組(基本組),Primary Group;每個用戶必須要有主要組,而且只能有一個;
在主要組的基礎之上,用戶可以與其他的組賬戶存在邏輯關係,此類組稱爲用戶的附加組(附屬組,額外組),Addtion Group;對於用戶來說,此類組可以沒有,也可以有多個;