Password
如何使使用者密碼在 Linux 中顯示為明文?
我們知道使用者的密碼保存在 中
/etc/passwd
,但是是以加密的方式保存的,所以即使是 root 也看不到它們:jane:x:501:501::/home/jane:/bin/bash fred:x:502:502::/home/fred:/bin/bash
如上圖,
:x:
代表密碼。
/etc/passwd
有沒有辦法(可能的配置)以明文形式保存密碼,以便 root 可以看到它們?
其他兩個答案已經告訴你——正確!——這是一個壞主意™。但他們也告訴你這很難做到,需要改變一堆程序。
這不是真的。這很容易。您只需要更改一兩個配置文件。我覺得指出這一點很重要,因為您在登錄不受控制的系統時應該意識到這一點。這些實際上不會將純文字密碼放入
/etc/passwd
or/etc/shadow
,它會進入另一個文件。注意我沒有測試過這些,因為我寧願沒有純文字的密碼。
- 編輯
/etc/pam.d/common-password
(捕捉密碼更改)或/etc/pam.d/common-auth
(捕捉登錄)並添加… pam_exec expose_authtok log=/root/passwords /bin/cat
- 編輯這兩個,然後從 pam_unix 切換到 pam_userdb
crypt=none
。或者,您可以僅將其放在 common-password 中(也保留 pam_unix),以便在更改密碼時僅記錄密碼。- 您可以從 pam_unix 中刪除
shadow
(以及任何強雜湊選項)選項以禁用影子文件,並返回到傳統的 crypt 密碼。不是純文字,但開膛手約翰會為您解決這個問題。有關更多詳細資訊,請查看PAM 系統管理員指南。
您還可以編輯 PAM 的原始碼,或編寫自己的模組。您只需要編譯 PAM(或您的模組),無需其他任何東西。