共計(jì) 4320 個(gè)字符,預(yù)計(jì)需要花費(fèi) 11 分鐘才能閱讀完成。
今天丸趣 TV 小編給大家分享一下 linux 用戶密碼存放的文件是什么的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
linux 用戶密碼存放在“/etc/shadow”文件中。“/etc/shadow”文件又稱為“影子文件”,用于存儲 Linux 系統(tǒng)中用戶的密碼信息;該文件只有 root 用戶擁有讀權(quán)限,其他用戶沒有任何權(quán)限,這樣就保證了用戶密碼的安全性。
linux 用戶密碼存放在“/etc/shadow”文件中。
Linux /etc/shadow(影子文件)
/etc/shadow 文件,用于存儲 Linux 系統(tǒng)中用戶的密碼信息,又稱為“影子文件”。
由于 /etc/passwd 文件允許所有用戶讀取,易導(dǎo)致用戶密碼泄露,因此 Linux 系統(tǒng)將用戶的密碼信息從 /etc/passwd 文件中分離出來,并單獨(dú)放到了此文件中。
/etc/shadow 文件只有 root 用戶擁有讀權(quán)限,其他用戶沒有任何權(quán)限,這樣就保證了用戶密碼的安全性。
注意,如果這個(gè)文件的權(quán)限發(fā)生了改變,則需要注意是否是惡意攻擊。
執(zhí)行如下命令,打開 /etc/shadow 文件看看:
vim /etc/shadow
root: $6$9w5Td6lg
$bgpsy3olsq9WwWvS5Sst2W3ZiJpuCGDY.4w4MRk3ob/i85fl38RH15wzVoom ff9isV1 PzdcXmixzhnMVhMxbvO:15775:0:99999:7:::
bin:*:15513:0:99999:7:::
daemon:*:15513:0:99999:7:::
…省略部分輸出…
同 /etc/passwd 文件一樣,文件中每行代表一個(gè)用戶,同樣使用 : 作為分隔符,不同之處在于,每行用戶信息被劃分為 9 個(gè)字段。每個(gè)字段的含義如下:
用戶名:加密密碼:最后一次修改時(shí)間:最小修改時(shí)間間隔:密碼有效期:密碼需要變更前的警告天數(shù):密碼過期后的寬限時(shí)間:賬號失效時(shí)間:保留字段
修改密碼:passwd
passwd 命令用于更新 /etc/shadow 文件中用戶的身份驗(yàn)證令牌。
# 當(dāng)前用戶修改密碼,直接使用 passwd
passwd
# 為其他用戶修改密碼
passwd 用戶名
鎖定用戶的密碼
禁用用戶
passwd 命令用于更新 /etc/shadow 文件中用戶的身份驗(yàn)證令牌。
# 鎖定用戶的密碼
passwd -l daygeek
## 回顯
Locking password for user daygeek.
passwd: Success
# 查看用戶的密碼鎖定狀態(tài)
passwd -S daygeek
# 解鎖用戶的密碼
passwd -u daygeek
查看賬號的密碼狀態(tài)
# 查看賬號的密碼狀態(tài)
passwd -S root
帳戶密碼狀態(tài)的簡短信息。
LK:密碼被鎖定
NP:沒有設(shè)置密碼
PS:密碼已設(shè)置
非交互式修改密碼
單引號,雙引號 的區(qū)別:
單引號 剝奪了所有字符的特殊含義,單引號 內(nèi)就變成了單純的字符。
雙引號 則對于雙引號 內(nèi)的參數(shù)替換 ($) 和命令替換 (“) 是個(gè)例外。
# 用 echo 寫入新密碼到 passwd 中
## passwd --stdin:從標(biāo)準(zhǔn)輸入(比如管道)寫入密碼
# echo 雙引號不要使用特殊字符, 比如!, 會被轉(zhuǎn)義
## echo 使用單引號, 引號內(nèi)的字符不會被轉(zhuǎn)義
echo 新密碼 |passwd --stdin 用戶名
# Ubuntu 不支持 --stdin 參數(shù), 可以使用替代命令
echo user:pass | chpasswd
刪除用戶的密碼
## -d 刪除已有密碼
passwd -d 用戶名
修改帳號和密碼的有效期限 chage
[root@localhost ~]# chage --help
用法:chage [選項(xiàng)] 登錄
-d, --lastday 最近日期 將最近一次密碼設(shè)置時(shí)間設(shè)為“最近日期” -E, --expiredate 過期日期 將帳戶過期時(shí)間設(shè)為“過期日期” -h, --help 顯示此幫助信息并推出
-I, --inactive INACITVE 過期 INACTIVE 天數(shù)后,設(shè)定密碼為失效狀態(tài)
-l, --list 顯示帳戶年齡信息
-m, --mindays 最小天數(shù) 將兩次改變密碼之間相距的最小天數(shù)設(shè)為“最小天數(shù)” -M, --maxdays 最大天數(shù) 將兩次改變密碼之間相距的最大天數(shù)設(shè)為“最大天數(shù)” -R, --root CHROOT_DIR chroot 到的目錄
-W, --warndays 警告天數(shù) 將過期警告天數(shù)設(shè)為“警告天數(shù)”
使用 - l 參數(shù)列出用戶密碼過期的設(shè)置:
# 查看上次密碼的修改時(shí)間
# 查看密碼過期配置
chage -l root
修改密碼有效期
# 修改 testt 用戶密碼信息, 設(shè)置最大有效期為 120 天, 最小有效期為 7 天
## -M, --maxdays 最大天數(shù) 將兩次改變密碼之間相距的最大天數(shù)設(shè)為“最大天數(shù)”## -m, --mindays 最小天數(shù) 將兩次改變密碼之間相距的最小天數(shù)設(shè)為“最小天數(shù)”chage -M 120 -m 7 test
設(shè)置密碼有效期到指定日期
# test 這個(gè)賬號的有效期是 2014-09-30
## -E, --expiredate 過期日期 將帳戶過期時(shí)間設(shè)為“過期日期”chage -E 2014-09-30 test
修改為密碼永不過期
# 修改用戶的密碼有效期為永久(5 個(gè) 9)
## -M, --maxdays 最大天數(shù) 將兩次改變密碼之間相距的最大天數(shù)設(shè)為“最大天數(shù)”chage -M 99999 用戶名
使密碼立即失效
# 使密碼立即失效
# 強(qiáng)制要求用戶登陸時(shí)修改密碼
## -d, --lastday 最近日期 將最近一次密碼設(shè)置時(shí)間設(shè)為“最近日期”chage -d 0 用戶名
# 查看密碼過期時(shí)間
[root@localhost ~]# chage -l use1
最近一次密碼修改時(shí)間 :密碼必須修改
密碼過期時(shí)間 :密碼必須修改
密碼失效時(shí)間 :密碼必須修改
帳戶過期時(shí)間 :從不
兩次改變密碼之間相距的最小天數(shù) :0
兩次改變密碼之間相距的最大天數(shù) :99999
在密碼過期之前警告的天數(shù) :7
使用 openssl 生成密碼查看支持的加密算法
[student@workstation data-secret]$ openssl passwd --help
Usage: passwd [options]
Valid options are:
-help Display this summary
-in infile Read passwords from file
-noverify Never verify when reading password from terminal
-quiet No warnings
-table Format output as table
-reverse Switch table columns
-salt val Use provided salt
-stdin Read passwords from stdin
-6 SHA512-based password algorithm
-5 SHA256-based password algorithm
-apr1 MD5-based password algorithm, Apache variant
-1 MD5-based password algorithm
-aixmd5 AIX MD5-based password algorithm
-crypt Standard Unix password algorithm (default)
-rand val Load the file(s) into the random number generator
-writerand outfile Write random data to the specified file
使用 sha512 算法生成密碼
[student@workstation data-secret]$ openssl passwd -6
Password: # 提示輸入密碼
Verifying - Password: # 確認(rèn)密碼
# 生成的加密后的密碼
$6$hkf.tpoz/woyZn1c$ArDSHie9USt44nnqymqL6OZWKsI3e0WWl4NedhfmQOlSEN6er18SYSfyGnvxQmEgC81DLKuERhqDm5Ei3iIDw0
給密碼加鹽(-salt)
使用 -salt 字符串 給密碼加鹽
不同的鹽, 密碼相同, 算法相同, 密文不同
相同的鹽, 密碼相同, 算法相同, 密文相同
# 加鹽 rhel 生成密碼密文
[student@workstation data-secret]$ openssl passwd -6 -salt rhel
Password: # 輸入密碼
## 生成的密文
$6$rhel$2JncQy/NAQr4GHoVgz49YGRni8lXx3jakLxYxEBcTYLN8hh7Nu9fJc4zSbRhiJmv0vBlB6W3YyQp.nLZo8MCy0
# 再次實(shí)驗(yàn)加鹽 rhel 生成密文
[student@workstation data-secret]$ openssl passwd -6 -salt rhel
Password: # 輸入密碼
## 生成的密文與上次密文完全一致
$6$rhel$2JncQy/NAQr4GHoVgz49YGRni8lXx3jakLxYxEBcTYLN8hh7Nu9fJc4zSbRhiJmv0vBlB6W3YyQp.nLZo8MCy0
密文分段詳解
$6$rhel$2JncQy/NAQr4GHoVgz49YGRni8lXx3jakLxYxEBcTYLN8hh7Nu9fJc4zSbRhiJmv0vBlB6W3YyQp.nLZo8MCy0
## $6 表示加密算法 sha512
## $rhel 表示鹽時(shí) rhel
## 第三個(gè) $ 之后才是 算法 + 鹽 + 原密碼 生成的密文
配置創(chuàng)建新用戶的密碼策略修改密碼最大有效期為 20 天
vim /etc/login.defs
## 修改默認(rèn)密碼策略為 20 天后過期
PASS_MAX_DAYS 20
以上就是“l(fā)inux 用戶密碼存放的文件是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,丸趣 TV 小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注丸趣 TV 行業(yè)資訊頻道。