/etc/passwd是用來存儲登陸用戶信息:
[root@localhost test]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
linux所有用戶的信息都在/etc/passwd中,占一行,共7段.
依次對應: 用戶名:密碼:uid:gid:描述信息:家目錄:默認shell
1. 賬號名稱:即登陸時的用戶名
2. 密碼:早期UNIX系統的密碼是放在這個文件中的,但因為這個文件的特性是所有程序都能夠讀取,所以,這樣很容易造成數據被竊取,因此后來就將這個字段的密碼數據改放到/etc/shadow中了.其中x僅僅表示用戶登錄需要密碼,x位置為空,則登錄無需密碼.
3. UID:用戶ID,每個賬號名稱對應一個UID,通常UID=0表示root管理員
4. GID:組ID,與/etc/group有關,/etc/group與/etc/passwd差不多,是用來規范用戶組信息的
5. 用戶信息說明欄: 用來解釋這個賬號是干什么的
6. 家目錄:home目錄,即用戶登陸以后跳轉到的目錄,以root用戶為例,/root是它的家目錄,所以root用戶登陸以后就跳轉到/root目錄這里
7. Shell:用戶使用的shell,用戶登錄后,要啟動一個進程,負責將用戶的操作傳給內核,這個進程是用戶登錄到系統后運行的命令解釋器或某個特定的程序,即Shell。Shell是用戶與Linux系統之間的接口。Linux的Shell有許多種,每種都有不同的特點。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。系統管理員可以根據系統情況和用戶習慣為用戶指定某個Shell。如果不指定Shell,那么系統使用sh為默認的登錄Shell,即這個字段的值為/bin/sh。
另外一個很重要的東西是有一個shell可以用來替代讓賬號無法登陸的命令,那就是/sbin/nologin。如果最后默認的shell為/sbin/nolog 表示在shell中不能用該用戶.該用戶不能登錄.
[root@localhost test]# cat /etc/shadow
root:$6$oO61Q1a0Enwvv1Qx$p64/NgihjT4CZsgrnJiRKaJfda5mksuiNyjHDwZPb18qRZHq7tXYBr/fmwyBxfbvI6w1O0IrP3WKwUhZmN/px1::0:99999:7:::
bin:*:17110:0:99999:7:::
[:]來進行分割,但是這里一共分出來九個欄目,每個欄目的解釋如下:
1、賬戶名稱
2、加密后的密碼:如果為空,則對應用戶沒有口令,登錄時不需要口令;星號代表帳號被鎖定;雙嘆號表示這個密碼已經過期了,故為*或者!!時都不能登錄。$6$開頭的,表明是用SHA-512加密;$1$表明是用MD5加密; $2$ 是用Blowfish加密;$5$ 是用 SHA-256加密;
3、最近改動密碼的日期(是一堆數字,這個是從1970年1月1日算起的總的天數)。
4、密碼不可被變更的天數:設置了這個值,則表示從變更密碼的日期算起,多少天內無法再次修改密碼,如果是0的話,則沒有限制.
5、密碼需要重新變更的天數:密碼經常更換才能保證安全,為了提醒某些經常不更換密碼的用戶,可以設置一個天數,強制讓用戶更換密碼,也就是說該用戶的密碼會在多少天后過期,如果為99999則沒有限制
6、密碼過期預警天數:如果在5中設置了密碼需要重新變更的天數,則會在密碼過期的前多少天進行提醒,提示用戶其密碼將在多少天后過期
7、密碼過期的寬恕時間:如果在5中設置的日期過后,用戶仍然沒有修改密碼,則該用戶還可以繼續使用的天數
8、賬號失效日期,過了這個日期賬號就不能用了
9、保留的