天天看點

使用者名檔案

先來看看 /etc/passwd檔案的内容。

[root@qiangzi ~]# cat /etc/passwd | head

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

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

擴充:

head指令用來檢視檔案内容的前多少行或多少位元組的内容。

指令用法

-c 用來擷取前多少位元組的内容,還可加上機關,預設是位元組。1(byte) 、1k(1kb)、1m(1mb)

-n用于擷取前多少行

-q 擷取多個檔案的時候不顯示檔案頭部

-v 擷取多個檔案的内容是顯示頭部,也是預設選項

http://blog.sina.com.cn/s/blog_167f23bf50102x8ql.html    (詳細連結)

head前面的“|”叫做管道符,它的作用是把前面指令的輸出再輸入給後面的指令。(管道符常用,需熟記)

/etc/passwd解說

/etc/passwd由“:”分割成 7 個字段,每個字段的具體含義是:

(1)使用者名(如第一行中的root就是使用者名),代表使用者賬号的字元串。使用者名字元可以是大小寫字母、數字、減号(不能出現在首位)、點以及下劃線,其他字元不合法。雖然使用者名中可以出現點,但不建議使用,尤其是首位為點時,另外減号也不建議使用,因為容易造成混淆。

(2)第二個字段存放的是該賬号的密碼,這是為什麼顯示是“x”呢?早期的unix系統密碼确實是存放在這裡,但基于安全因素,後來就将其存放到“/etc/shadow”中了,在這裡隻用一個“x”代替。

(3)這個數代表使用者辨別号,也叫作uid。系統識别使用者身份就是通過這個數字來的,0就是root,也就是說我們可以修改test使用者的uid為0,那麼系統會認為test和root為同一個賬戶。uid的取值範圍是0~65535(但實際上已經可以支援到4294967294),0是超級使用者root的辨別号,1~499由系統保留,作為管理賬号,普通使用者的辨別号從500開始,如果我們自定義建立一個普通使用者,你會看到該賬号的辨別号是大于或等于500的。

(4)表示組辨別号,也叫作gid。這個字段對應着/etc/group中的一條記錄,其實/etc/group和/etc/passwd基本上類似。

(5)注釋說明,該字段沒有實際意義。通常記錄該使用者的一些屬性,例如姓名、電話、位址等等。不過,當你使用finger(finger用來顯示使用者名、使用者全名、終端裝置号和登入時間等資訊)的功能時就會顯示這些資訊的。

(6)使用者的家目錄,當使用者登入時就處在這個目錄下。root的家目錄是/root,普通使用者的家目錄則為/home/username,使用者家目錄是可以自定義的。比如,建立一個普通使用者test1,要想讓test1的家目錄在/data目錄下,隻要修改/etc/passwd檔案中對應該使用者那行中的文本字段為/data即可。

(7)使用者的shell。使用者登入後要啟動一個程序,用來将使用者下達的指令傳給核心,這就是shell。linux的shell有很多種sh、csh、ksh、tcsh、bash等。而redhat/contos的shell就是bash.檢視/etc/passwd檔案,該字段除了/bin/bash外還有/sbin/nologin比較多,他表示不允許該賬号登入,那麼就可以把該字段改成/sbin/nologin

預設是/bin/bash。