◾/etc/passwd 檔案結構

這個檔案的構造是這樣的:每一行都代表一個帳號,有幾行就代表有幾個帳號在你的系統中! 不過需要特別留意的是,裡頭很多帳號本來就是系統正常運作所必須要的,我們可以簡稱他為系統帳號, 例如 bin, daemon, adm, nobody 等等,這些帳號請不要隨意的殺掉他呢!這個檔案的內容有點像這樣:

[root@study ~]# head -n 4 /etc/passwd
root:x:0:0:root:/root:/bin/bash  <==等一下做為底下說明用
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin


我們先來看一下每個 Linux 系統都會有的第一行,就是 root 這個系統管理員那一行好了, 你可以明顯的看出來,每一行使用『:』分隔開,共有七個咚咚,分別是:
1.帳號名稱:
 就是帳號啦!用來提供給對數字不太敏感的人類使用來登入系統的!需要用來對應 UID 喔。例如 root 的 UID 對應就是 0 (第三欄位);


2.密碼:
 早期 Unix 系統的密碼就是放在這欄位上!但是因為這個檔案的特性是所有的程序都能夠讀取,這樣一來很容易造成密碼資料被竊取, 因此後來就將這個欄位的密碼資料給他改放到 /etc/shadow 中了。所以這裡你會看到一個『 x 』,呵呵!


3.UID:
 這個就是使用者識別碼囉!通常 Linux 對於 UID 有幾個限制需要說給您瞭解一下:


id 範圍 該 ID 使用者特性
0
(系統管理員) 當 UID 是 0 時,代表這個帳號是『系統管理員』! 所以當你要讓其他的帳號名稱也具有 root 的權限時,將該帳號的 UID 改為 0 即可。 這也就是說,一部系統上面的系統管理員不見得只有 root 喔! 不過,很不建議有多個帳號的 UID 是 0 啦~容易讓系統管理員混亂!
1~999
(系統帳號) 保留給系統使用的 ID,其實除了 0 之外,其他的 UID 權限與特性並沒有不一樣。預設 1000 以下的數字讓給系統作為保留帳號只是一個習慣。

 由於系統上面啟動的網路服務或背景服務希望使用較小的權限去運作,因此不希望使用 root 的身份去執行這些服務, 所以我們就得要提供這些運作中程式的擁有者帳號才行。這些系統帳號通常是不可登入的, 所以才會有我們在第十章提到的 /sbin/nologin 這個特殊的 shell 存在。

 根據系統帳號的由來,通常這類帳號又約略被區分為兩種:
◦1~200:由 distributions 自行建立的系統帳號;
◦201~999:若使用者有系統帳號需求時,可以使用的帳號 UID。
 
1000~60000
(可登入帳號) 給一般使用者用的。事實上,目前的 linux 核心 (3.10.x 版)已經可以支援到 4294967295 (2^32-1) 這麼大的 UID 號碼喔!

上面這樣說明可以瞭解了嗎?是的, UID 為 0 的時候,就是 root 呦!所以請特別留意一下你的 /etc/passwd 檔案!


4.GID:
 這個與 /etc/group 有關!其實 /etc/group 的觀念與 /etc/passwd 差不多,只是他是用來規範群組名稱與 GID 的對應而已!


5.使用者資訊說明欄:
 這個欄位基本上並沒有什麼重要用途,只是用來解釋這個帳號的意義而已!不過,如果您提供使用 finger 的功能時, 這個欄位可以提供很多的訊息呢!本章後面的 chfn 指令會來解釋這裡的說明。


6.家目錄:
 這是使用者的家目錄,以上面為例, root 的家目錄在 /root ,所以當 root 登入之後,就會立刻跑到 /root 目錄裡頭啦!呵呵! 如果你有個帳號的使用空間特別的大,你想要將該帳號的家目錄移動到其他的硬碟去該怎麼作? 沒有錯!可以在這個欄位進行修改呦!預設的使用者家目錄在 /home/yourIDname


7.Shell:
 我們在第十章 BASH 提到很多次,當使用者登入系統後就會取得一個 Shell 來與系統的核心溝通以進行使用者的操作任務。那為何預設 shell 會使用 bash 呢?就是在這個欄位指定的囉! 這裡比較需要注意的是,有一個 shell 可以用來替代成讓帳號無法取得 shell 環境的登入動作!那就是 /sbin/nologin 這個東西!這也可以用來製作純 pop 郵件帳號者的資料呢!

文章來源:鳥哥網站

arrow
arrow

    Johnson峰 發表在 痞客邦 留言(0) 人氣()