Linux密碼檔案
(1).密碼檔案
[[email protected] ~]# head -3 /etc/shadow root:$6$kcgcu794R0VP3fDL$aYN8XUbtWvZ4QQtT2xVW.N2CgE3YLPdtnprAAtKZUgNdq8itUJEN6NoYQDarLUevcDCWrxMVId8b18ujwST1b0::0:99999:7::: bin:*:17632:0:99999:7::: daemon:*:17632:0:99999:7:::
內容格式如下,用冒號隔開,可以用man 5 shadow檢視幫助:
name |
登入名稱,必須是有效使用者名稱 |
password |
已加密密碼,分為三個部分用$分隔,第一部分表示用哪種雜湊演算法;第二部分是用於加密雜湊的salt;第三部分是已加密的雜湊 雜湊演算法:1表示MD5;6表示SHA-512;5表示SHA-256 |
lastchanage |
最近一次更改密碼的日期,以距離1970/1/1的天數表示 |
min-age |
密碼更改後多少天內不能再次更改。0表示可以隨時更改 |
max-age |
密碼過期時間,必須在期限內修改密碼 |
warning |
警告期,警告使用者再過多少天密碼將過期。0表示不提供警告 |
inactive |
寬限期,密碼過期多少天仍然可以使用 |
expire |
帳號過期時間,以距離1970/1/1的天數表示。0或空字元表示永不過期 |
blank |
預留欄位 |
注意1:兩個不同的使用者使用相同的密碼,加密過後雜湊值不同,因為salt不同。
例項展示:
[[email protected] ~]# useradd t1 [[email protected] ~]# useradd t2 [[email protected] ~]# passwd t1 //互動式修改密碼 更改使用者 t1 的密碼 。 新的 密碼: 無效的密碼: 密碼少於 8 個字元 重新輸入新的 密碼: passwd:所有的身份驗證令牌已經成功更新。 [[email protected] ~]# echo 123456 | passwd --stdin t2 //非互動式修改密碼 更改使用者 t2 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 [[email protected] ~]# tail -2 /etc/shadow t1:$6$wS6JOIbp$gqRhtxnFFpB5W6yptxXVEOlvqaRFtgEBBTqJoiWTrml2Uz73/hGgePtJF8E8B0ppsXMalSBMTJgRUoMBIGPjJ.:17902:0:99999:7::: t2:$6$mZnceAg8$t8l5AEXGs7iUhl98Zxx5hlKVn1qhOzlKsOMbgMuSTrp7HRsyRPgi12Dk5jRdQL/F3zPxMK7XhcdaU.MkgcRE91:17902:0:99999:7:::
注意2:兩段加密互換等於互換密碼,不影響登入。
注意3:salt是passwd命令自動生成的。
(2).配置檔案/etc/login.defs
egrep是grep的高階用法等同於grep -e,-v選項表示取反值,"^$|^#"中^表示以什麼開頭,$表示空行,完整意思表示以空行或#開頭。
[[email protected] ~]# egrep -v "^$|^#" /etc/login.defs MAIL_DIR /var/spool/mail PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 UID_MIN 1000 UID_MAX 60000 SYS_UID_MIN 201 SYS_UID_MAX 999 GID_MIN 1000 GID_MAX 60000 SYS_GID_MIN 201 SYS_GID_MAX 999 CREATE_HOME yes UMASK 077 USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512
詳細說明:
CREATE_HOME(boolean) 指示是否應該為新使用者預設建立主目錄。此設定並不應用到系統使用者,並且可以使用命令列覆蓋。
GID_MAX(number),GID_MIN(number) useradd,groupadd或newusers建立的常規組的組ID範圍。GID_MIN預設值1000(CentOS6為500),GID_MAX預設值60000。
MAIL_DIR(string)郵箱目錄。修改或刪除使用者賬戶時需要處理郵箱,如果沒有指定,將使用編譯時指定的預設值。
MAIL_FILE(string) 定義使用者郵箱檔案的位置(相對於主目錄)。
注意:MAIL_DIR和MAIL_FILE變數由useradd,usermod和userdel用於建立、移動或刪除使用者郵箱。如果MAIL_CHECK_ENAB設定為yes,它們也被用於定義MAIL環境變數。
MAX_MEMBERS_PER_GROUP(number) 每個組條目的最大成員數。達到最大值時,在/etc/group開始一個新條目(行)(使用同樣的名稱,同樣的密碼,同樣的GID)。預設值是0,意味著組中的成員數沒有限制。此功能(分割組)允許限制組檔案中的行長度。這對於確保NIS組的行比長於1024字元。如果要強制這個限制,可以使用25。
注意:分割組可能不受所有工具的支援(甚至在Shadow工具集中)。如果沒有必要你不應該使用這個變數。
PASS_MAX_DAYS(number) 一個密碼可以使用的最大天數。如果密碼比這個舊,將會強迫更改密碼。如果不指定,就假定為-1,這會禁用此限制。
PASS_MIN_DAYS(number) 兩次更改密碼時間最小間隔。將會拒絕任何早於此的更改密碼的嘗試。如果不指定就假定為-1,將會禁用此限制。
PASS_WARN_AGE(number) 密碼過期之前鬼畜警告的天數。0表示在過期當天警告,負值表示不警告。如果沒有指定,不會給出警告。
SYS_GID_MAX(number),SYS_GID_MIN(number) useradd、groupadd或newusers建立的系統組的組ID範圍。SYS_GID_MIN預設101(CentOS6為201),SYS_GID_MAX預設GID_MIN-1。
SYS_UID_MAX(number),SYS_UID_MIN(number) useradd或newusers建立的系統使用者的使用者ID的範圍。SYS_UID_MIN預設101(CentOS6為201),SYS_UID_MAX預設UID_MIN-1。
UID_MAX(number),UID_MIN(number) useradd或newusers建立的普通使用者的使用者ID的範圍。UID_MIN預設1000(CentOS6為500),UID_MAX預設60000。
UMASK(number) 檔案模式建立掩碼初始化為此值。如果沒有指定,掩碼初始化為022。Useradd和newusers使用此掩碼設定它們建立的使用者主目錄的模式。也被login用於指定使用者的初始umask。注意,此掩碼可以被使用者的GECOS行覆蓋(當設定了QUOTAS_ENAB時),也可以被帶K指示符的limits(5)定義的限制值覆蓋。
USERGROUPS_ENAB(boolean) 如果uid和gid相同,使用者名稱和主使用者名稱也相同,使非root組的組掩碼位和屬主位相同(如:022->002,077->007)。如果設定為yes,組中也沒有成員了,userdel將移除此使用者組,useradd建立使用者時,也會建立一個同名的預設組。
(3).擴充套件命令chage
chage [選項] 登入名
1)選項
-m 密碼更改後多少天內不能再次更改。0表示可以隨時更改 -M 密碼過期時間,必須在期限內修改密碼 -W 警告期,警告使用者再過多少天密碼將過期。0表示不提供警告 -E 帳號過期時間,以距離1970/1/1的天數表示。0或空字元表示永不過期 -d最近一次更改密碼的日期,以距離1970/1/1的天數表示。為0表示強制在下次登入時更新密碼 -I寬限期,密碼過期多少天仍然可以使用 -l 顯示使用者當前設定資訊
2)例項
強制使用者下次修改密碼
[[email protected] ~]# chage -d 0 t1 [[email protected] ~]# ssh [email protected] The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established. ECDSA key fingerprint is SHA256:r8TKDXZGzdWkjGnXtfb/YGwCTYViIh9PvJxjrkA4hXU. ECDSA key fingerprint is MD5:99:ea:1a:2c:c3:81:de:6c:95:b2:86:c1:d0:7e:60:96. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.10' (ECDSA) to the list of known hosts. [email protected]'s password: You are required to change your password immediately (root enforced) Last login: Sun Jan 6 18:42:35 2019 from 192.168.0.99 WARNING: Your password has expired. You must change your password now and login again! 更改使用者 t1 的密碼 。 為 t1 更改 STRESS 密碼。 (當前)UNIX 密碼: 新的 密碼: