前言:
在用戶管理,組管理過程中,最基本的四個文件就是/etc下面的passwd,shadow,group,gshadow。他們記錄了與用戶和組相關的信息。是學習和深入了解用戶,組的基本。
除了這些基本的配置文件 還有與初始化相關的配置文件。定義用戶添加時初始狀態的配置文件/etc/default/useradd。
以及用戶家目錄的內容文件參考目錄/etc/skel。和與用戶,組基本屬性默認設置的配置文件/etc/login.defs。接下來就對這些配置文件進行詳細介紹。
/etc/passwd:
例:root:x:0:0:root:/root:/bin/bash
1.帳號名稱:用來提供給對數字不太敏感的人類使用來登入系統的。需要對呀UID。例如root的UID對應的就是0(第三位)
2.密碼:早起Unix系統的密碼是放在這一欄的。但是因為passwd的特性是所有程序逗都能讀取,這樣很容易造成密碼資料被竊取,因此后來就將這個欄位的密碼資料改進到/etc/shadow中了。所以這里會看到一個x。
3.UID:這個就是標識用戶的識別碼。通常,centos6中,id為0是系統管理員,即只要uid是0就是管理員,就散用戶名是root,對應的uid不是0,那么它也不是系統管理員。1到499是系統用戶,500到60000是普通用戶,在centos 7中,系統帳號的id是1到999,普通用戶的id是1000到60000。
4.GID:這個與/etc/group有關。用來標識一個用戶組。
5.使用者資料說明欄:用來說明這個帳號的意義,比如:全名,辦公室的房間號,辦公室電話,家里電話等等
6.家目錄:指明用戶的家目錄,以上面為例,root的家目錄就是/root。所以當root登錄后就立刻跑到/roo目錄里面,默認普通用戶的家目錄在/home/yourname
7.shell:指定我們登錄用戶后使用的shell類型,特別要注意的/sbin/nologin這個shell,可使用戶不能登錄。
/etc/shadow:
例:root:$6$wtbCCce/PxMeE5wm$KE2IfSJr.YLP7Rcai6oa/T7KFhO…:16559:0:99999:7:::
1.帳號名稱:這里的名稱與/etc/passwd里的帳號名稱對應。
2.密碼:這個欄里才是用戶正真的密碼,而且是經過加密的密碼。并且很難被破解出來,雖然很難但不等于不會,所以此文件的權限是只有root可以讀寫。
3.最近修改密碼的日期:這個欄位記錄了更改密碼那一天的日期。16559表示修改密碼那天距離1970年1月1日的天數,
4.密碼不可被更改的天數(與第三欄相比):標識這個密碼被修改后需要經過幾天才可以在此被修改,如果是0的話,表示密碼可以被隨時修改。如果設置為10天,標識你設置完密碼后的10天內都不能修改密碼。
5.密碼需要重新變更的天數:(與第三欄相比):這個欄位用來指定在最近一次修改密碼后,在多少年數內需要在此的變更密碼才行。你必須在這個天數內重新設定你的密碼,否則這個帳號的密碼將會過期。
6.密碼需要變更期限前的警告天數:(與第五欄相比)當賬號的密碼有效期限快要到的時候,系統會根據這個欄位的設定,發出警告言論給這個帳號,提醒他再過n天密碼就要過期了,如上面的例子,則是密碼到期之前的7天之內,系統會警告該用戶。
7.密碼過期后的帳號寬限時間(密碼失效日):(與第五欄相比)密碼有效日期為第三欄更新日期加上第五欄的重新變更日期,過了該期限后使用者依舊沒有更改密碼,那該密碼就算過期了。雖然密碼過期但是該帳號還是可以用來進行其他的工作,包括登入系統取得bash。不過如果密碼過期了,那當你登入系統時,系統會強制要求你必須重新設定密碼才能登入繼續使用。該欄目的表示,在密碼過期幾天后,如果使用者還是沒有登入更改密碼,那么該帳號的密碼就會失效,即該帳號再也無法使用該密碼登入了。要區分密碼過期和密碼失效
8.帳號失效日期:這個日期跟第三欄一樣,都是使用1970年來的總天數設定。這個欄標識,這個帳號在此欄規定的日期之后,將無法再使用。就是所謂的帳號失效,此時無論你的密碼是否過期,這個帳號就不能在被使用,這個欄位會被使用通常應該在收費服務的系統中,你可以規定一個日期讓這個帳號不能再使用了。
9.保留:最后一欄是保留的,看以后有沒有新功能加入。
/etc/default/useradd
GROUP=100 <==預設的群組
HOME=/home <==預設的家目錄所在目錄
INACTIVE=-1 <==密碼失效日,在shadow內的第7欄
EXPIRE= <==帳號失效日,在shadow內的第8欄
SHELL=/bin/bash <==預設的shell
SKEL=/etc/skel <==使用者家目錄的內容資料參考目錄
CREATE_MAIL_SPOOL=yes <==是否主動幫使用者建立郵件信箱(mailbox)
GROUP=100:新建帳號的初始群組為GID是100的群組,但centos中并不是這樣。centos采用私有群組機制,在帳號創建時,系統默認會創建一個與帳號名一樣的群組給使用者作為初始去租。這種群組這頂機制會比較有保密性,因為每個用戶都有自己的群組,而家目錄的權限設定為,只有自己和進入自己的家目錄。所以此機制不會參考GROUP=100這個設定值。
HOME=/home:用戶家目錄的基準目錄,即用戶的家目錄通常是與帳號同名的目錄,這個目錄將會放在次設定值的目錄后。
INACTIVE=-1:密碼過期后是否會失效的設定值,我們在shadwo配置文件中提過,第七欄位的設定值將會影響到密碼過期后,在多久時間內還可以使用舊密碼登入。這個項目就是在指定該天數!如果是0代表密碼過期立刻失效,如果是-1則是代表密碼永遠不會失效。如果是30,則代表過期30天后才會失效。
EXPIRE=:帳號失效的日期,就是shadow內的第八欄,你可以直接設定帳號在哪個日期后就直接失效,并且和密碼的問題無關。
SEELL=/bin/bash:默認使用的shell名稱,系統默認的shell就寫在這里,假如你的服務器不需要用戶登錄系統取得shell,那么就可以將這里設定為/sbin/nologin,這樣,新建的使用者默認就無法登入了。
SKEL=/etc/skel:用戶家目錄參考的基準目錄,用戶剛創建后家目錄內就有各種配置文件,都是有/etc/skel所復制過去的。假如你想用戶剛建立就有某個目錄,就把該目錄添加到/etc/skel中,這樣每次用戶被創建,此目錄就會被復制到家目錄下。
CREATE_MAIL_SPOOL=yes:建立使用者的郵箱。
/etc/skel/
就是上面提到的,用戶家目錄的內容參考目錄,并且有以下配置文件。
.bash_logout:當每次退出系統(退出bash shell)時,執行此文件
.bash_profile:每個用戶都可使用該文件輸入專用于自己的shell信息,當用戶登錄時,該文件僅僅執行一次,默認情況下,他設置一些環境變量,執行用戶的.bashrc文件
.bashrc:該文件包含用戶bash shell的信息,當登錄時以及每次打開新的shell時,該文件被讀取.
/etc/login.defs
MAIL_DIR /var/spool/mail <==使用者預設郵件信箱放置目錄
PASS_MAX_DAYS 99999 <==/etc/shadow內的第5欄,多久需變更密碼日數
PASS_MIN_DAYS 0 <==/etc/shadow內的第4欄,多久不可重新設定密碼日數
PASS_MIN_LEN 5 <==密碼最短的字元長度,已被pam模組取代,失去效用!
PASS_WARN_AGE 7 <==/etc/shadow內的第6欄,過期前會警告的日數
UID_MIN 1000 <==使用者最小的UID,意即小于1000的UID為系統保留
UID_MAX 60000 <==使用者能夠用的最大UID
SYS_UID_MIN 201 <==保留給使用者自行設定的系統帳號最小值UID
SYS_UID_MAX 999 <==保留給使用者自行設定的系統帳號最大值UID
GID_MIN 1000 <==使用者自訂群組的最小GID,小于1000為系統保留
GID_MAX 60000 <==使用者自訂群組的最大GID
SYS_GID_MIN 201 <==保留給使用者自行設定的系統帳號最小值GID
SYS_GID_MAX 999 <==保留給使用者自行設定的系統帳號最大值GID
CREATE_HOME yes <==在不加-M及-m時,是否主動建立使用者家目錄?
UMASK 077 <==使用者家目錄建立的umask ,因此權限會是700
USERGROUPS_ENAB yes <==使用userdel刪除時,是否會刪除初始群組
ENCRYPT_METHOD SHA512 <==密碼加密的機制使用的是sha512這一個機制!
原創文章,作者:M21-陜西-李賢,如若轉載,請注明出處:http://www.www58058.com/53544