用戶、組和權限
資源分派
Authentication 認證
Authorization 授權
Accouting|Audition 審計
認證:驗證用戶的身份,驗證你是張三 還是李四
授權:確認了身份之后才考慮授權,給用戶大的權限還是小的權限,允許你還是拒絕你。
權限分為很多種,比如說文件是否可讀、可寫。
審計:所謂審計就是監控,可以對系統的使用情況做日志。
認證
在linux中通常用用戶名和口令來驗證用戶的身份。
用戶user
令牌 token identity
Linux用戶 username/UID
管理員 root 0
普通用戶 1-65535
系統用戶 1-499(CENTOS6) 1-999對守護進程獲取資源進行權限分配
登錄用戶 500(CEENTOS6) + , 1000+ 交互式登錄
在計算機中,如果你通過了驗證,用戶就拿到了令牌,系統就認為你是某個人,然后權限就有了,就可以去訪問各種資源了。
令牌如何得到呢?需要用戶在登錄的時候輸入正確的用戶名和密碼來實現的。
系統用戶啟動就會運行,不需要登錄。
組 group
Linux組 groupname/GIO
管理員組 root 0
普通組: 500+ 1000+
系統組 1-499 1-999
在linux中允許組和用戶同名,這跟windows中是有差別的。
Security context 安全上下文
運行中的程序:進程 process
以進程發起者的身份運行:
Root /bin/cat
Mage /bin/cat
進程所能訪問的資源的權限取決于進程的運行者的身份
在linux中,當用戶去運行程序的時候,用root登錄,運行/bin/cat程序,那么該命令再去訪問某些文件,但是該文件設置了訪問權限。用戶就會收到該文件的控制。當用戶去訪問該文件的時候,該文件的權限也是這個訪問用戶的權限。
誰去運行一個程序,那么得到的權限就是由這個人而決定的。而和進程本身無關。
用戶通過進程來訪問某個文件的時候,用戶得到的權限是由進程運行者的身份來決定的。
Primary group 主組
用戶的主要組(主組):
用戶必須屬于一個且只有一個主組。組名同用戶名,且僅包含一個用戶。
一個賬號可以屬于多個組,但是用戶必須要屬于一個組,那就是主組。事實上當用戶在創建的時候會自動的指定一個組做主組,而且這個主組是必須有的。其中一個是主組,那么其他組自然也就成了輔助組。
Secondary group 附加組
一個用戶可以屬于零個或多個輔助組
輔助組是可以有也可以沒有的。主組是必須要有的。并且有且只有一個。
主組可以理解成一個人的身份。
如何去查看一個用戶屬于什么組呢?
用“id”命令查看
在linux中默認主組的用戶名和用戶是同名的。換句話說就是創建一個張三,就會有一個張三組。
用戶和組的配置文件
/etc/passwd 用戶及其屬性信息(名稱 UID 主組ID)
Username :x: uid : gid :comment : home : shell
/etc/group 組及其屬性信息
Groupname : x : gid :groupmember
/etc/shadow 用戶密碼及其相關屬性
Groupname : password : password age : min :max :warn : inactive : usernameage :
/etc/gshadow 組密碼及其相關屬性
Groupname : password : groupadmin : groupmember
前兩個是關于用戶和組的配置文件
后兩個是關于用戶和組的口令文件
Passwd
我們現在講的passwd是一個文本文件。而不是二進制可執行程序。只不過名字相同罷了。
是一個文本文件,里面描述了用戶的登錄賬號和用戶信息。對于所有人都有讀的權限。但是對于其他用戶是不能寫的,只有超級管理員才能寫。
用cat /etc/passwd 查看用戶及屬性信息
Pwunconv 顯示用戶口令,不過是加密的
Pwconv 隱藏用戶口令
zzd:x :1000 :1000 :zzd :/home/zzd : /bin/bash
Zzd 用戶名
X 口令
1000 UID
1000 所屬主組的ID
zzd 描述,有沒有無所謂??梢宰约杭印?/span>
/home/zzd 家目錄
/bin/bash $SHELL類型 “chsh -s /bin/bash用戶” 此命令可以修改$SHELL類型
Getent passwd想當于cat /etc/passwd查看用戶類型
口令文件
cat /etc/shadow 只能root用戶去查看,普通用戶查看不了
$6表示sha512加密方式 在centos5中是$1表示md5(128位)加密方式
Cat/etc/group
Groups 用戶名 查看用戶屬于哪個組
Root :x:0:
Root 組名
X 組口令
0 組ID
: 組成員 一般來講是輔助組。
默認情況下,當一個用戶創建文件的時候,這個文件的所有者就是這個用戶,所屬組就是這個用戶的主組,而不是輔助組。
Newgrp 組名 可以切換主組輔助組,但是該命令是臨時的,當重新登錄時,又會回到原 來的組里。
切換所屬組需要知道切換組的密碼,但是系統默認是不設密碼的,所以無法切換。
組的口令是放在 /etc/gshadow文件中的??梢杂?/span>cat命令查看并做設置。
Bin 組名
: 組的口令
: bin組管理員的用戶賬號 默認情況下是空的,代表著只能root管理員能做設置。
Bin,daemon 組成員
gpasswd 組名 對組進行設口令
密碼加密
加密 明文 密文
解密 密文 明文
單向加密 哈希算法 原文不同 密文必不同
相同算法定長輸出,獲得密文不可逆推出原始數據
雪崩效應 初始條件的微小改變,引起結果的巨大改變
Md5 128bits
Sha1 1690bits
Sha224 224bits
Sha256 256bits
Sha384 384bits
Sha512 512bits
更改加密算法 authconfig –passalgo=sha256 –update
密碼復雜性策略
使用數字 大寫字母 小寫字母及特殊字符中至少3種
足夠長
使用密碼
定期更換 不要使用最近使用過的密碼
安全修改配置文件的命令
Vipw = vi /etc/passwd
vigr =vi /etc/group
pwck和grpck 檢查修改完成后的配置文件語法是否錯誤。
Vipw和vigr都具有語法檢查功能,當修改配置文件時出現錯誤,系統會自動報警。比nono修改要安全的多。
用戶和組管理命令
用戶管理命令 useradd usermod userdel
組賬號維護命令 groupadd groupmod groupdel
Uesradd 創建新用戶或更新新用戶的信息
但是該用戶默認是沒有口令的
上圖中“!!”表示禁止登陸。如果沒有密碼并且允許登錄,“??!”位置是空的。可以用nano進行修改,刪除“?。 ?。
可以用命令usermod -L 用戶名 進行對“!!”的添加。 加鎖
可以用命令usermod -U 用戶名 進行對“??!”的刪除。 解鎖
-u 指定用戶ID號
-o 配合-u使用,不提示ID的唯一性,也就是數一個ID號可以有兩個用戶,且兩個用戶權限一樣。注意:配合使用時-o要寫在-u前面,位置不能變,也就是-ou。
-g 可以給用戶指定一個現成的主組,不用再新創建和自己同名的主組。
-G 可以給用戶指定一個或幾個現成的輔助組
下圖中并沒有為用戶指定主組,所以用戶主動創建了一個叫zhao的主組。
-N 不創建私有組作為主組,使用users作為主組。
– d 為用戶指定家目錄 但是指定的路徑中的文件夾必須是不存在的,否則會報錯
– s 指定用戶$SHELL類型
如果賬號是給系統用的,建議設置一個特殊的屬性,叫系統屬性。讓該賬號成為系統賬號。使用選項“-r”,“-r”表示該賬號是個系統賬號,其將來的ID是1000以內的。
對于系統賬號也是不會生成家目錄的。
當我們創建用戶的時候,大部分情況下會自動創建其家目錄,而家目錄里會自動的創建一些隱藏的文件,而這些文件一旦被破壞,用家目錄中的用戶登錄會報錯。
/etc/skel是新創建用戶家目錄的模板文件夾。該目錄將來在新建用戶時會自動復制相關的文件,作為用戶家目錄的模板。(用來恢復將來有可能被破壞的家目錄)。
/etc/default/useradd目錄定義了新創建用戶的默認屬性。也可以用useradd -D做修改。
原創文章,作者:zzd,如若轉載,請注明出處:http://www.www58058.com/29123