


安全管理Linux系統(tǒng)中的用戶和組
在Linux操作系統(tǒng)中,每一個(gè)文件和程序都?xì)w屬于一個(gè)特定的“用戶”。每一個(gè)用戶都由一個(gè)惟一的身份來標(biāo)識(shí),這個(gè)標(biāo)識(shí)叫做用戶ID(UserID,UID)。并且,系統(tǒng)中的每一個(gè)用戶也至少需要屬于一個(gè)“用戶分組”,也就是由系統(tǒng)管理員所建立的用戶小組,這個(gè)小組中包含著許多系統(tǒng)用戶。與用戶一樣,用戶分組也是由一個(gè)惟一的身份來標(biāo)識(shí)的,該標(biāo)識(shí)叫做用戶分組ID(GroupID,GID)。用戶可以歸屬于多個(gè)用戶分組。對(duì)某個(gè)文件或程序的訪問是以它的UID和GID為基礎(chǔ)的。一個(gè)執(zhí)行中的程序繼承了調(diào)用它的用戶的權(quán)利和訪問權(quán)限。
用戶文件和組文件
1. 用戶賬戶文件——/etc/passwd
/etc/passwd文件是Unix安全的關(guān)鍵文件之一。這個(gè)文件的每一行保存一個(gè)用戶的資料,而用戶資料的每一個(gè)數(shù)據(jù)項(xiàng)采用冒號(hào)“: ”分隔。如下所示:
LOGNAME: PASSWORD: UID: GID: USERINFO: HOME: SHELL
每行的頭兩項(xiàng)是登錄名和加密后的口令,后面的兩個(gè)數(shù)是UID和GID,接著的一項(xiàng)是系統(tǒng)管理員想寫入的有關(guān)該用戶的任何信息。最后兩項(xiàng)是兩個(gè)路徑名: 一個(gè)是分配給用戶的HOME目錄; 第二個(gè)是用戶登錄后將執(zhí)行的shell(若為空格則缺省為/bin/sh)。所有用戶口令的存放都是加密的,通常采用的是不可逆的加密算法,比如DES。任何擁有0值UID的用戶都具有根用戶(系統(tǒng)管理員)訪問權(quán)限,通常,UID是這個(gè)特殊值的用戶的登錄名是“root”。允許任何其他用戶或者用戶名擁有0值的UID都可能危及系統(tǒng)安全。
2. 用戶影子文件——shadow
由于/etc/passwd文件是全局可讀的,而且口令加密的算法是公開的,如果有惡意用戶取得了/etc/passwd文件,便可以窮舉所有可能的明文通過相同的算法計(jì)算出密文進(jìn)行比較,直到相同,從而破解口令。因此,針對(duì)這種安全問題,Linux/Unix廣泛采用了“shadow(影子)文件”機(jī)制,將加密的口令轉(zhuǎn)移到/etc/shadow文件里,該文件只為root超級(jí)用戶可讀,而同時(shí)/etc/passwd文件的密文域顯示為一個(gè)x,從而最大限度地減少了密文泄露的機(jī)會(huì)。/etc/shadow文件的每行是8個(gè)冒號(hào)分割的9個(gè)域,格式如下。
username: passwd: lastchg: min: max: warn: inactive: expire: flag
其中,各個(gè)域表示如下含義: 用戶登錄名、加密的用戶口令、從1970年1月1日起到上次修改口令所經(jīng)過的天數(shù)、兩次修改口令之間至少經(jīng)過的天數(shù)、口令還會(huì)有效的最大天數(shù)(如果是99999則表示永不過期)、口令失效前多少天內(nèi)系統(tǒng)向用戶發(fā)出警告、禁止登陸前用戶名還有效的天數(shù)、用戶被禁止登陸的時(shí)間、保留字段(暫未使用)。
3. 用戶組賬號(hào)文件——/etc/group
/etc/passwd文件中包含著每個(gè)用戶缺省的分組ID(GID)。在/etc/group文件中,這個(gè)GID被映射到該用戶分組的名稱以及同一分組中的其他成員。
/etc/group文件含有關(guān)于小組的信息,/etc/passwd中的每個(gè)GID在文件中應(yīng)當(dāng)有相應(yīng)的入口項(xiàng),入口項(xiàng)中列出了小組名和小組中的用戶,這樣可方便地了解每個(gè)小組的用戶,否則必須根據(jù)GID在/etc/passwd文件中從頭至尾地尋找同組用戶,這提供了一個(gè)比較快捷的尋找途徑。/etc/group文件對(duì)小組的許可權(quán)限的控制并不是必要的,因?yàn)橄到y(tǒng)用來自于/etc/passwd文件的UID、GID來決定文件存取權(quán)限,即使/etc/group文件不存在于系統(tǒng)中,具有相同的GID用戶也可以小組的存取許可權(quán)限共享文件。小組就像登錄用戶一樣可以有口令。如果/etc/group文件入口項(xiàng)的第二個(gè)域?yàn)榉强?通常用x表示),則將被認(rèn)為是加密口令。
/etc/group文件中每一行的內(nèi)容如下所示: 用戶分組名、加過密的用戶分組口令、用戶分組ID號(hào)(GID)、以逗號(hào)分隔的成員用戶清單。
4. 組賬號(hào)文件——/etc/gshadow
如同用戶賬號(hào)文件的作用一樣,組賬號(hào)文件也是為了加強(qiáng)組口令的安全性,防止黑客對(duì)其實(shí)行的暴力攻擊,而采用的一種將組口令與組的其他信息相分離的安全機(jī)制。其格式如下所示: 用戶組名、加密的組口令、組成員列表。
驗(yàn)證用戶和組文件
1. 使用pwck和grpck命令驗(yàn)證用戶和組文件
上面所介紹的用戶以及組賬號(hào)文件都非常重要,對(duì)于系統(tǒng)驗(yàn)證用戶和組具有重要意義。一旦上述文件發(fā)生錯(cuò)誤,則會(huì)對(duì)系統(tǒng)造成影響。正是基于這個(gè)原因,Linux提供了pwck和grpck這兩個(gè)命令分別驗(yàn)證用戶以及組文件,以保證這兩個(gè)文件的一致性和正確性。下面將分別加以介紹。
pwck用來驗(yàn)證用戶賬號(hào)文件(/etc/passwd)和影子文件(/etc/shadow)的一致性,它驗(yàn)證文件中的每一個(gè)數(shù)據(jù)項(xiàng)中每個(gè)域的格式以及數(shù)據(jù)的正確性。如果發(fā)現(xiàn)錯(cuò)誤,該命令將會(huì)提示用戶對(duì)出現(xiàn)錯(cuò)誤的數(shù)據(jù)項(xiàng)進(jìn)行刪除。
該命令主要驗(yàn)證每個(gè)數(shù)據(jù)項(xiàng)是否具有: 正確的域數(shù)目、惟一的用戶名<
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解