1. 用戶相關配置文件
A) /etc/passwd 文件是什麼
/etc/passwd 是系統識別用戶的一個文件,作個不恰當的比喻,
/etc/passwd 是一個花名冊,系統全部的用戶都在這裏有登陸記載;當咱們以
intern01 這個帳號登陸時,系統首先會查閱 /etc/passwd 文件,看是否有
intern01 這個帳號,而後肯定 intern01 的 UID,經過 UID 來確認用戶和身
份,若是存在則讀取/etc/shadow 影子文件中所對應的 intern01 的密碼;若是
密碼覈實無誤則登陸系統,讀取用戶的配置文件;
B) /etc/passwd 的 7 個字段
在/etc/passwd 中,每一行都表示的是一個用戶的信息;一行有 7 個字
段;每一個字段用:號分割,好比下面是個人系統中的/etc/passwd 的兩行;
intern01:x:500:500:張三:/home/intern01:/bin/bash
intern02:x:501:502::/home/intern02:/bin/bash
第一字段: 用戶名, 在上面的例子中,咱們看到這兩個用戶的用戶名分別
是 intern01 和 intern02;
第二字段: 密碼;在例子中咱們看到的是一個 x,其實密碼已被映射到
/etc/shadow 文件中;
第三字段: UID ;請參看本文的 UID 的解說;
第四字段: GID;請參看本文的 GID 的解說;
第五字段: 用戶名全稱,這是可選的,能夠不設置,在 intern01 這個用戶
中,用戶的全稱是張三 ;而 intern02 這個用戶沒有全稱;
第六字段: 用戶的家目錄所在位置; intern01 這個用戶是/home/
intern01 ,而 intern02 這個用戶是/home/ intern02 ;
第七字段: 用戶所用 SHELL 的類型, intern01 和 intern02 都用的是
bash ;因此爲/bin/bash 。
C) /etc/shadow 文件
/etc/shadow 文件是/etc/passwd 的影子文件,這個文件並不禁
/etc/passwd 而產生的,這兩個文件是應該是對應互補的; shadow 內容包括
用戶及被加密的密碼以及其它/etc/passwd 不能包括的信息,好比用戶的有效
期限等;這個文件只有 root 權限能夠讀取和操做,權限以下:
-r-------- 1 root root 1.5K 10 月 16 09:49 /etc/shadow
/etc/shadow 的權限不能隨便改成其它用戶可讀,這樣作是危險的。若是
你發現這個文件的權限變成了其它用戶組或用戶可讀了,要進行檢查,以防系
統安全問題的發生;若是咱們以普通用戶查看這個文件時,應該什麼也查看不
到,提示是權限不夠:
[intern01@localhost ~]$ more /etc/shadow
/etc/shadow: 權限不夠
D) /etc/shadow 的 9 個字段
/etc/shadow 文件的內容包括 9 個段位,每一個段位之間用:號分割;咱們以
以下的例子說明。
intern01:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:16662:0:99999:7:::
intern02:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:16662:0:99999:7::16668:
第一字段: 用戶名(也被稱之爲登陸名),在例子中有兩條記錄,也表示
有兩個用戶 intern01 和 intern02
第二字段: 被加密的密碼,若是有的用戶在此字段中是 x,表示這個用戶不
能登陸系統,也能夠看做是虛擬用戶,不過虛擬用戶和真實用戶都是相對
的,系統管理員隨時能夠對任何用戶操做;
第三字段: 表示上次更改口令的天數(距 1970 年 01 月 01 日),上面的
例子能說明 intern01 和 intern02 這兩個用戶,是在同一天更改了用戶密
碼,固然是經過 passwd 命令來更改的,更改密碼的時間距 1970 年 01 月
01 日的天數爲 13072;
第四字段: 禁用兩次口令修改之間最小天數的功能,設置爲 0
第五字段: 兩次修改口令間隔最多的天數,在例子中都是 99999 天;這個
值若是在添加用戶時沒有指定的話,是經過/etc/login.defs 來獲取默認
值, PASS_MAX_DAYS 99999; 你能夠查看/etc/login.defs 來查看,具體
的值;
第六字段: 提早多少天警告用戶口令將過時;當用戶登陸系統後,系統登
錄程序提醒用戶口令將要做廢;若是是系統默認值,是在添加用戶時由
/etc/login.defs 文件定義中獲取,在 PASS_WARN_AGE 中定義;在例子
中的值是 7 ,表示在用戶口令將過時的前 7 天警告用戶更改期口令;
第七字段: 在口令過時以後多少天禁用此用戶;此字段表示用戶口令做廢
多少天后,系統會禁用此用戶,也就是說系統會不能再讓此用戶登陸,也
不會提示用戶過時,是徹底禁用;在例子中,此字段兩個用戶的都是空
的,表示禁用這個功能;
第八字段: 用戶過時日期;此字段指定了用戶做廢的天數(從 1970 年的 1
月 1 日開始的天數),若是這個字段的值爲空,賬號永久可用;在例子
中,咱們看到 intern01 這個用戶在此字段是空的,表示此用戶永久可用;
而 intern02 這個用戶表示在距 1970 年 01 月 01 往後 16668 天后過時,算
起來也就是 2010 年 11 月 21 號過時
第九字段: 保留字段,目前爲空,以備未來 Linux 發展之用;
2. 用戶組相關配置文件
A) /etc/group 文件
/etc/group 文件是用戶組的配置文件,內容包括用戶和用戶組,而且能顯
示出用戶是歸屬哪一個用戶組或哪幾個用戶組,由於一個用戶能夠歸屬一個或多
個不一樣的用戶組;同一用戶組的用戶之間具備類似的特徵。好比咱們把某一用
戶加入到 root 用戶組,那麼這個用戶就能夠瀏覽 root 用戶家目錄的文件,若是
root 用戶把某個文件的組讀寫執行權限開放, root 用戶組的全部用戶均可以修
改此文件,若是是可執行的文件(好比腳本), root 用戶組的用戶也是能夠執
行的;
用戶組的特性在系統管理中爲系統管理員提供了極大的方便,但安全性也
是值得關注的,如某個用戶下有對系統管理有最重要的內容,最好讓用戶擁有
獨立的用戶組,或者是把用戶下的文件的權限設置爲徹底私有;另外 root 用戶
組通常不要輕易把普通用戶加入進去。
B) /etc/group 的 4 個字段
/etc/group 的內容包括用戶組(Group) 、用戶組口令、 GID 及該用戶組
所包含的用戶(User), 每一個用戶組一條記錄; 格式以下:
group_name:passwd:GID:user_list
在/etc/group 中的每條記錄分四個字段:
第一字段: 用戶組名稱;
第二字段: 用戶組密碼;
第三字段: GID
第四字段: 用戶列表,每一個用戶之間用,號分割;本字段能夠爲空;若是字
段爲空表示用戶組爲 GID 的用戶名;
咱們舉個例子:
root:x:0:root,intern02
#用戶組 root, x 是密碼段,表示沒有設置密碼, GID 是 0,root 用戶組下包括 root、 intern02
以及 GID 爲 0 的其它用戶(能夠經過/etc/passwd 查看)
intern01:x:500:intern02
#用戶組 intern01, x 是密碼段,表示沒有設置密碼, GID 是 500,intern01 用戶組下包括
intern02 用戶及 GID 爲 500 的用戶(能夠經過/etc/passwd 查看)
intern02:x:502:intern02
#用戶組 intern02, x 是密碼段,表示沒有設置密碼, GID 是 502,intern02 用戶組下包用戶
intern02 及 GID 爲 502 的用戶(能夠經過/etc/passwd 查看)
helloer:x:503:
#用戶組 helloer, x 是密碼段,表示沒有設置密碼, GID 是 503,helloer 用戶組下包括 GID
爲 503 的用戶,能夠經過/etc/passwd 查看
而/etc/passwd 對應的相關的記錄爲:
root:x:0:0:root:/root:/bin/bash
intern01:x:500:500:intern01 sun:/home/intern01:/bin/bash
intern02:x:505:502:intern02 open,intern02 office,13898667715:/home/intern02:/bin/bash
helloer:x:502:503::/home/helloer:/bin/bash
由此能夠看出 helloer 用戶組包括 helloer 用戶;因此咱們查看一個用戶組
所擁有的用戶,能夠經過對比/etc/passwd 和/etc/group 來獲得。
C) /etc/gshadow 文件
/etc/gshadow 是/etc/group 的加密文件, 好比用戶組(Group) 管理密碼
就是存放在這個文件。 /etc/gshadow 和/etc/group 是互補的兩個文件;對於
大型服務器,針對不少用戶和組,定製一些關係結構比較複雜的權限模型,設
置用戶組密碼是極有必要的。好比咱們不想讓一些非用戶組成員永久擁有用戶
組的權限和特性,這時咱們能夠經過密碼驗證的方式來讓某些用戶臨時擁有一
些用戶組特性,這時就要用到用戶組密碼。
D) /etc/gshadow 的 4 個字段
/etc/gshadow 格式以下,每一個用戶組獨佔一行,咱們舉例來講明:
intern01:!::intern02
intern02:oUS/q7NH75RhQ::intern02
第一字段: 用戶組名
第二字段: 用戶組的密碼, intern01 用戶組無密碼; intern02 用戶組有已
經,已經加密;
第三字段: 用戶組管理者,二者都爲空;
第四字段: intern01 用戶組所擁有的成員是 intern02 ,而後還要對照一下
/etc/group 和/etc/passwd 查看是否還有其它用戶,通常默認添加的用
戶,有時同時也會建立用戶組和用戶名同名稱; intern02 用戶組有成員
intern02。
安全