運維學習之用戶和組的管理:
linux是一個多用戶多任務的分時操作票系統,所有一個要使用系統資源的用戶都必須先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。用戶的賬號一方面能幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另一方面也能幫助用戶組織文件,併爲用戶提供安全性保護。每個用戶賬號都擁有一個惟一的用戶名和用戶口令。用戶在登錄時鍵入正確用戶名和口令後,才能進入系統和自己的主目錄。
實現用戶賬號的管理,要完成的工作主要有如下幾個方面:
1)用戶賬戶管理
2)組賬戶管理
3)權限的分配
現在大多數企業採用的Cisco公司開發的AAA認證體系:
Authentication:認證,覈實身份是否正確;
Authorization:授權,對已經覈實身份的用戶進行資源分配;
Accounting:審計,監督資源被使用的情況;
在這個多用戶、多任務的系統中,應用程序進程是能夠實現資源使用和完成任務的主題。
進程是以其發起者的身份運行的:可以理解爲,進程的所有者就是發起者 ;會將發起者的信息標記在進程上;當進程試圖訪問資源的時候,安全上下文會比對進程的所有者和資源的所有者的關係:
首先查看進程的所有者是不是資源的所有者,如果是,就按照屬組的權限使用;
如果不是,則判斷進程的所有者是否屬於資源所屬組,如果是,按照屬組的權限使用資源;如果不是,則直接使用資源的其他人訪問權限來使用資源;
用戶賬戶:就是計算機操作者在操作系統中的身份映射;是在滿足了認證條件之後的身份映射;
其中用戶分爲2類:
超級用戶(管理員):root
普通用戶:
1)系統用戶:爲了保證安全,必須讓那些運行在後臺的進程或者服務類進程以非管理員的身份運行;這類 用戶一般不需要登陸到系統;
2)登錄用戶:能夠正常使用整個系統資源的用戶;
用戶的標識:
1)用戶的登錄名稱:爲操作者準備的簡單易記的字符串標識;
2)用戶的ID(UID):爲計算機系統準備的數字標識;
超級用戶ID:0
系統用戶ID:
CentOS5、6:1~499
CentOS7:1~999
登錄用戶:
CentOS5、6:500~60000
CentOS7:1000~60000
60000+的標識符爲用戶自定義標識:
名稱解析:
名字<-->UID
解析庫:/etc/passwd(解析庫文件)
系統利用解析庫完成認證機制:
驗證登錄用戶是否是你聲稱的那個人
認證庫:
用戶的認‘證信息庫:/etc/shadow
組的認證信息庫:/etc/group
採用密碼認證的機制:
設置密碼的一般性策略:
1.儘量使用隨機字串作爲密碼;
2.密碼的長度一般不要少8字符
3.密碼中至少包括大寫字母、小寫字母、數字和標點符號四類字符中的三類;
4.不定期更換,每隔一段不規律的時間更換一個密碼;42天之內更改密碼。
在linux中,保存到認證庫中的密碼信息是經過加密保存的:
hash(哈希)單向加密算法:抽取原始數據的特徵信息,數據指紋;
單向加密算法的特徵:
1.只要數據相同,其加密結果就必然相同;
2.無論數據多大,其加密效果定長輸出;
3.雪崩效應:
4.不可逆
單向加密常用的算法:
1.md5:message diges,消息摘要,128bit定長輸出
2.sha1:Secuer Hash Alogrithm ,安全的哈希算法,160bit定長輸出;
3.sha224
4.sha256
5.sha384
6.sha512
salt:加隨機數
抽取隨機數:
ls /dev/*random
/etc/random :僅僅只是從熵池中返回隨機數,一旦熵池隨機數耗盡,則進程被堵塞
/etc/unrandom:先試圖從熵池中返回隨機數,如果熵池耗盡,它就會利用僞隨機數生成器生產僞隨機數;
注意: 熵池中的數據有可能被取空。
echo "qhdlink" | md5sum : 爲qhdlink這個數據流加密
最終認證字符串:算法+salt+密碼
在認證庫中存放的信息:$6$salt$crytped_password
用戶組:將具有某些相同或相似屬性的用戶聯繫在一起以便集中授權的容器:
用戶的組類別:
管理員組:
普通用戶組:
1)系統組:
2)登陸組:
組的標識方法:
組名:
方便操作者使用的;
組的ID(GID) :
爲系統提供組標識;
管理員組:0
系統組:
CentOS5~6:1-499
CentOS7:1-999
登陸組:
CentOS5、6:500-60000
CentOS7:1000-60000
組的解析庫:
/etc/group
組也需要認證,組也有認證庫:
/etc/grasswd
同樣組也需要密碼保護,如果組沒有設置密碼保護的話,則不能隨時加入
以用戶爲核心來對組進行分類:
用戶的主要組(基本組):primary group,對於用戶來說,這樣的組要有而且只能有一個
用戶的附加組(附屬組,額外組):這樣的組對於用戶來說可以沒有,也可以有多個。
根據組容納的用戶進行分類:
用戶的私有組:組名與用戶登錄名相同,並且組中只有此用戶;
用戶的公共組:組中可以包含其他多個不同用戶;
注意:默認情況下,用戶的主要組都是其私有組
下面是我們在進行用戶和組的管理時主要使用命令:
組管理相關的命令:
groupadd groupdel groupmod gpasswd
用戶管理相關的命令L:
useradd userdel usermod
與認證相關的命令:
passwd 、gpasswd 、chage、
其他的相關的管理命令:
chsh finger su id
用戶賬號的管理主要涉及到用戶賬號的添加、刪除和修改。
1.創建新用戶的命令是useradd,其語法如下:
useradd 選項 用戶名
其中各選項含義如下:
-c comment 指定一段註釋性描述。
-d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,能創建主目錄。
-g 用戶組 指定用戶所屬的用戶組。
-G 用戶組,用戶組 指定用戶所屬的附加組。
-s Shell文件 指定用戶的登錄Shell。
-u 用戶號 指定用戶的用戶號,如果同時有-o選項,則能重複使用其他用戶的標識號。
-p 這個命令是需求提供md5碼的加密口令,普通數字是不行的。
2.刪除賬號的命令是userdel,其語法如下:
userdel 選項 用戶名
-r : 把用戶的主目錄一起刪除
3.修改已有賬號信息的命令是usermod,其語法如下:
-c 修改用戶帳號的備註文字。
-d 修改用戶登入時的目錄。
-e 修改帳號的有效期限。
-f 修改在密碼過期後多少天即關閉該帳號。
-g 修改用戶所屬的羣組。
-G 修改用戶所屬的附加羣組。
-l 修改用戶帳號名稱。
-L 鎖定用戶密碼,使密碼無效。
-<shell> 修改用戶登入後所使用的shell。
-u<uid> 修改用戶ID。
-U 解除密碼鎖定。
4.產看賬號的屬性
id user1 :顯示user1的UID和GID
5,指定和修改用戶的密碼命令是passwd,其用法如下:
passwd 選項 用戶名
-l 鎖定密碼,即禁用賬號。
-u 密碼解鎖。
-d 刪除用戶的密碼。
-f 強迫用戶下次登錄時修改密碼。
用戶組的管理:
1.添加用戶組的命令是groupadd,其語法如下:
groupadd 選項 用戶
-g GID 指定新用戶組的組標識號(GID)。
-o 一般和-g選項同時使用,表示新用戶組的GID能和系統已有用戶組的GID相同。
2.刪除已有的用戶組用groupdel命令。
groupdel 用戶組
3.修改用戶組的命令是groupmod命令:
groupmod 選項 用戶組
-g GID 爲用戶組指定新的組標識號。
-o 和-g選項同時使用,用戶組的新GID能和系統已有用戶組的GID相同。
-n 新用戶組 將用戶組的名字改爲新名字