linux的passwd和shadow重要檔案說明

2021-06-02 02:57:05 字數 4591 閱讀 3735

l /etc/passwd

# vim /etc/passwd

root:x:0:0:root:/root:/bin/bash

....省略

說明:每一行都代表乙個賬號。有很多賬號是系統中必須要的,簡稱系統賬號,例如bin,nobody 等。每一行使用:分隔開,共有七段,分別是:

1, 賬號名稱。對應 uid 用的!

2, 密碼:早期的unix 系統的密碼是放在這個檔案中,但因為這個檔案的特性是所有的程式都能夠讀取,所以考慮到安全問題,後來就將這個欄位的密碼資料給改放到 /etc/shadow中。這裡的 x,表示密碼已經被移動到 shadow 這個加密過後的檔案了。

3,  uid:這個就是使用者識別碼 (id) !通常 linux 對於 uid 有幾個範圍:其中0是代表超級管理員,1-499系統賬號,500-65535給一般使用者使用的。

4, gid:與 /etc/group 有關!用來規範group

5, 使用者資訊說明欄。

6, 家目錄:使用者的家目錄,如果有個賬號的使用空間特別的大,想要將該賬號的家目錄移動到其它的硬碟去,可以在這裡進行修改!預設使用者家目錄在 /home/youridname

7, shell:使用者使用的shell,注意:有個shell可以用來替代成讓賬號無法登入!那就是/sbin/nologin!可以用來製作純pop郵件賬號者的資料!

l /etc/shadow

使用者的相關密碼存放檔案。

#vim /etc/shadow

root:$1$crpkukzg$hll/dywm1wy4j6fqsg2js0:14296:0:99999:7:::

bin:*:14296:0:99999:7:::

...省略。。。

共有九段:

1,賬號名稱:必須與passwd檔案帳號相對應。

2,密碼:被編譯過!只會看到一些特殊符號的字母!如果是在密碼欄的第乙個字元為*或者是!,表示此賬號並不會被用來登入。這樣就可以限制某些帳號的登陸。

3,最近更動密碼的日期:這個字段記錄了更動密碼的那一天的日期,注意,linux 日期的時間是以1970/01/01作為 1 ,而1971/01/01則為366! 所以這個日期是累加的天數!

4,密碼不可被更動的天數:如果是0,表示密碼隨時可以更動。如果在此期間修改系統會提示:you must wait longer to change your password

passwd: authentication token manipulation error

5,密碼必須在限制的天數內修改的天數:必須要在這個時間之內重新設定的密碼,否則這個賬號將會暫時失效。而99999,表示密碼不需要重新輸入!

6,密碼需要修改期限前的警告期限:當賬號的密碼失效期限快要到的時候,系統會依據這個欄位的設定,發出警告(warning: your password will expire in 5 days)給這個賬號,提醒再過n天密碼就要失效了。。。

8,賬號失效日期:也是用1970 年以來的總天數設定。賬號在此規定的日期之後,將無法再使用。 通常應用在收費服務的系統中,可以規定乙個日期讓該賬號不能再使用!

9,保留:最後乙個欄位是保留的,看以後有沒有新功能加入。

l /etc/group

這個檔案就記錄gid與群組名稱的對應

#vim /etc/group

root:x:0:root

bin:x:1:root,bin,daemon

每段意思是:

1,群組名稱

2,群組密碼:通常不需要設定,因為我們很少使用到群組登入!不過密碼也是被紀錄在 /etc/gshadow

3,gid:群組的id

4,此組成員名稱。注意,乙個使用者是可以加入多個群組的。

l /etc/gshadow  該檔案記錄了組的密碼

#vim /etc/gshadow

root:::root

bin:::root,bin,daemon

分別是:

1,群組名稱 

2,密碼欄,開頭為 ! 表示無法登入;

3,群組管理員的賬號 

4,該群組的所屬賬號 (與 /etc/group 內容相同)

以系統的操作來說,/etc/gshadow 的密碼提供,最大的功能是在於讓那些不在組中的成員,臨時加入該組用。實際上使用的情況是很少的,而如果真的要操作這樣的環境,那就得要熟悉newgrp 的用法!而且還要提供某個組的密碼出來,不好管理。所以,若真想要讓某個使用者利用該群組的功能時,還是直接將對方加入群組的支援就好了!

取消root的密碼登入系統

這時必須要使用到 /etc/shadow 這個資料!所以只要能夠以各種可行的方法開機進入linux,例如單人維護模式,或者是以live cd (knoppix)。然後將硬碟順利掛載,然後進入/etc/shadow這個檔案中,將root的密碼欄全部清空!然後再登入linux一次,這個時候root將不需要密碼(有的時候需要輸入空格符) 就可以登入了!再以passwd重設root密碼。

usradd

-u  :接uid 。直接指定乙個特定的uid給這個賬號;

-g  :後接組名( initial group) ,該 group id (gid) 會被放置到 /etc/passwd。

-m  :強制!不要建立使用者家目錄

-c  :這個就是 /etc/passwd 的第五欄的說明內容,可以隨便設定

-d  :指定某個目錄成為家目錄,而不使用預設值;

-r  :建立乙個系統的賬號,這個賬號的uid 會有限制 (/etc/login.defs)

-s  :後面接乙個shell ,預設為/bin/bash 

該命令的配置檔案為 /etc/default/useradd

usermod

引數:-c  :後面接賬號的說明,即 /etc/passwd 第五欄的說明欄,可以加入一些賬號的說明。

-d  :後面接賬號的家目錄,即修改 /etc/passwd的第六欄;

-e  :後面接日期,格式是 yyyy-mm-dd 也就是在 /etc/shadow 內的第八段!

-g  :後面接 group name,修改 /etc/passwd 的第四段,即gid !

-g  :後面接 group name,修改這個使用者能夠支援的組,修改的是 /etc/group

-l  :後面接賬號名稱。修改賬號名稱, /etc/passwd 的第一欄!

-s  :後面接shell 的實際檔案,例如 /bin/bash 或 /bin/csh 等等。

-u  :後面接 uid!即 /etc/passwd 第三欄的;

-l  :暫時將使用者的密碼凍結,讓他無法登入。就是改/etc/shadow 的密碼欄。

-u  :將 /etc/shadow 密碼欄的 ! 拿掉,解凍!

ø passwd:密碼管理

root 可以幫助user 設定密碼!user 僅能修改自己的密碼!

# passwd [-lunxws] username

引數:-l  :將 username 這個賬號的密碼鎖住 (lock),就是修改/etc/shadow內的密碼欄

-u  :將 -l 的 lock 解開!

-n  :後面接天數 ,最短天數;即 /etc/shadow 內的第四欄;

-x  :後面接天數,最長天數;即 /etc/shadow 內的第五欄;

-w  :後面接天數 ,警告天數;即/etc/shadow 內的第六欄;

userdel:刪除使用者,

引數:-r  :連同使用者的家目錄也一起刪除

chsh:一般使用者修改shell

引數:-l  :列出目前系統上面可用的 shell ,就是 /etc/shells 的內容!

-s  :設定修改自己的 shell 

ø groupadd

# groupadd [-g gid] [-r]

引數:-g  :後接gid ,用來直接給予某個gid給新建的組

-r  :建立系統組!與 /etc/login.defs 內的 gid_min 有關。

ø groupmod:進行group 相關引數的修改。

# groupmod [-g gid] [-n group_name]

引數:-g  :修改 gid ;

-n  :修改組名稱

gpasswd:

給組設定密碼。 設定後,該組就能夠讓某些人登入成為有效群組!!

v (root)做的動作:

# gpasswd groupname

# gpasswd [-a user1,...] [-m user3,user4...] groupname

# gpasswd [-rr] groupname

引數::若沒有任何引數時,表示給予groupname 乙個密碼(/etc/gshadow)

-a  :指定該組的組管理員

-m  :將某些賬號加入這個組當中!

-r  :將 groupname 的密碼移除

-r  :讓 groupname 的密碼欄失效,所以newgrp就不能使用了!

v 關於組管理員(group administrator)的動作:

$ gpasswd [-ad] user groupname

引數:-a  :將某位使用者加入到 groupname組當中!

-d  :將某位使用者移除出 groupname組

Linux下passwd和shadow檔案內容詳解

一 etc passwd name password uid gid comment home shell name 使用者登入名 password 使用者口令。此域中的口令是加密的,常用x表示。當使用者登入系統時,系統對輸入的口令採取相同的演算法,與此域中的內容進行比較。如果此域為空,表明該使用者...

Linux 指令碼 sh 和 的區別

如果.不在path裡面,要執行當前目錄下的可執行檔案,使用全路徑 executable filepath是環境變數,如果將當前目錄 新增到環境變數中,那麼也可以不用 直接輸入當前目錄下有可執行許可權的可執行檔案就可以執行了 如果要執行乙個sh指令碼,不管那個指令碼有沒有可執行許可權,都可以使用 sh...

Linux 基礎命令 passwd

命令 passwd 更改使用者密碼 用法 passwd option passwd 使用者 root fp 21 passwd help k,keep tokens 保留未過期的身份驗證令牌 d,delete 刪除指定使用者的密碼 只限 root 使用者 l lock 鎖定指定使用者的密碼 只限 r...