linux用戶配置文件有四個:1、“/etc/passwd”,系統(tǒng)用戶花名冊,存儲了系統(tǒng)中所有用戶的基本信息,并且所有用戶都可以對此文件執(zhí)行讀操作;2、“/etc/shadow”,用于存儲系統(tǒng)中用戶的密碼信息;3、“/etc/group”,用于存儲系統(tǒng)中用戶組的所有信息;4、“/etc/gshadow”,用于存儲組用戶的密碼信息。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
Linux 用戶配置文件
下面將討論 Linux 用戶管理中涉及的四個配置文件。
這四個文件是用戶管理的核心,系統(tǒng)中用戶和用戶組的任何操作,最終的落腳點就是這四個文件。這四個文件可以分為兩組,第一組文件中存放著用戶相關配置數(shù)據(jù),第二組文件中存放著用戶組相關配置數(shù)據(jù)。
- 用戶相關配置數(shù)據(jù)
-
/etc/passwd
:系統(tǒng)用戶花名冊,存儲了系統(tǒng)中所有用戶的基本信息,并且所有用戶都可以對此文件執(zhí)行讀操作。
-
/etc/shadow
:系統(tǒng)用戶影子文件,用于存儲 Linux 系統(tǒng)中用戶的密碼信息,又稱為“影子文件”。
- 用戶組相關配置數(shù)據(jù)
-
/etc/group
:系統(tǒng)用戶組花名冊,是用戶組配置文件,即用戶組的所有信息都存放在此文件中。
-
/etc/gshadow
:系統(tǒng)用戶組影子文件,用于存儲組用戶的密碼信息
用法
/etc/passwd
里面有很多行,每行存儲了一個用戶的信息。每行有七個字段,每個字段用冒號分隔:
第一字段
:用戶名第二字段
:密碼(用 x 來代替,真的密碼是放在 /etc/shadow 文件中)第三字段
:用戶 UID第四字段
:用戶的主用戶組 GID第五字段
:用戶描述(如果不設置就是空)第六字段
:用戶家目錄所在位置第七字段
:用戶使用的 Shell 類型
/etc/shadow
是 /etc/passwd 的影子文件。一般來說,shadow 文件內(nèi)容的行數(shù)與 passwd 文件內(nèi)容行數(shù)應該是相同的。shadow 文件每行也存儲著用戶的信息,和 passwd 文件互為補充。兩個文件合在一起就可以完整的描述系統(tǒng)中的每個用戶。shadow 文件每行有九個字段:
第一字段
:用戶名第二字段
:被加密的用戶密碼(如果該字段是星號或感嘆號,表示該用戶不能作為普通用戶正常登錄系統(tǒng))第三字段
:密碼最后一次修改(從 1970/1/1 日起到密碼最后一次被修改的天數(shù))第四字段
:密碼修改最小時間間隔(兩次修改用戶密碼之間所需的最小天數(shù),默認是 0,表示可以隨時修改用戶密碼)第五字段
:密碼修改最大時間間隔(用戶密碼保持有效的最大天數(shù),默認是 99999,大概 273 年來,也就是不強制定期更好的意思)第六字段
:密碼失效警告時間(從系統(tǒng)開始警告用戶到用戶密碼正式失效之間的天數(shù),默認是 7,表示不啟用該功能)第七字段
:用戶口令作廢多少天后,系統(tǒng)會禁用此用戶,禁用后系統(tǒng)將不允許此用戶登錄,也不會提示用戶過期(默認為空,表示不啟用該功能)第八字段
:用戶失效時間(相當于規(guī)定了用戶的生存期,單位為天,相對的起始時間也是 1970/1/1。期滿后該用戶就無法登錄了,默認為空,表示此用戶永久可用)第九字段
:保留字段。目前為空。
/etc/group
里面有很多行,每行存儲了一個用戶組的信息。每行有四個字段,每個字段用冒號分隔:
第一字段
:用戶組名第二字段
:用戶組密碼(用戶組密碼很少用到,只有在大型服務器上針對很多用戶和組指定一些關系結(jié)構(gòu)比較復雜的權(quán)限模型時,設置用戶組密碼才有必要。默認用 x 替代,真的密碼放在 /etc/gshadow 文件中)第三字段
:用戶組 GID第四字段
:從屬該用戶組的用戶列表,如果多個用戶,使用逗號分隔。如果該字段為空,并不一定表示該用戶組沒有用戶,因為如果該用戶組是某個用戶的主用戶組,這個用戶是不會顯示在列表中的。
/etc/gshadow
是 /etc/group 的影子文件。一般來說,gshadow 文件內(nèi)容的行數(shù)與 group 文件內(nèi)容行數(shù)應該是相同的。gshadow 文件每行也存儲著用戶組的信息,和 group 文件互為補充。兩個文件合在一起就可以完整的描述系統(tǒng)中的每個用戶組。gshadow 文件每行有四個字段:
第一字段
:用戶組名第二字段
:用戶組加密后的密碼(空或感嘆號表示沒有密碼)第三字段
:組管理者(可以為空,如果有多個用戶組管理者需要用逗號分隔)第四字段
:從屬該用戶組的用戶列表
當我們使用 useradd 命令添加用戶,并使用 passwd 命令為剛添加的用戶設置密碼時,就會自動將用戶信息寫入 /etc/passwd 和 /etc/shadow 文件中。同理,使用 groupadd 命令添加用戶組時,也會自動將信息寫入 /etc/group 和 /etc/gshadow。理論上,我們可以通過修改這些配置文件的內(nèi)容來修改用戶或用戶組的任意屬性,但卻不推薦這么做。因為手動修改配置文件很容易造成系統(tǒng)用戶或用戶組管理混亂。
為什么要將用戶信息分開存到兩個文件中呢?出于系統(tǒng)需求,passwd 文件對于所有用戶都是可讀的,因為用戶需要保護的信息如密碼就不能放在 passwd 中了,這部分信息就放在了 shadow 文件中。shadow 文件只有根用戶才能查看和修改,相對更加安全。用戶組信息分開存放的原因和用戶信息分開存放的原因完全相同。
root@centos:~# ls -l /etc/passwd -rw-r--r-- 1 root root 4500 6月 1 00:30 /etc/passwd root@centos:~# ls -l /etc/shadow -rw-r----- 1 root shadow 5251 6月 1 00:30 /etc/shadow root@centos:~# ls -l /etc/group -rw-r--r-- 1 root root 1664 6月 1 00:30 /etc/group root@centos:~# ls -l /etc/gshadow -rw-r----- 1 root shadow 1354 6月 1 00:30 /etc/gshadow