Password

如何使使用者密碼在 Linux 中顯示為明文?

  • January 20, 2017

我們知道使用者的密碼保存在 中/etc/passwd,但是是以加密的方式保存的,所以即使是 root 也看不到它們:

jane:x:501:501::/home/jane:/bin/bash
fred:x:502:502::/home/fred:/bin/bash

如上圖,:x:代表密碼。

/etc/passwd有沒有辦法(可能的配置)以明文形式保存密碼,以便 root 可以看到它們?

其他兩個答案已經告訴你——正確!——這是一個壞主意™。但他們也告訴你這很難做到,需要改變一堆程序。

這不是真的。這很容易。您只需要更改一兩個配置文件。我覺得指出這一點很重要,因為您在登錄不受控制的系統時應該意識到這一點。這些實際上不會將純文字密碼放入/etc/passwdor /etc/shadow,它會進入另一個文件。注意我沒有測試過這些,因為我寧願沒有純文字的密碼。

  1. 編輯/etc/pam.d/common-password(捕捉密碼更改)或/etc/pam.d/common-auth(捕捉登錄)並添加… pam_exec expose_authtok log=/root/passwords /bin/cat
  2. 編輯這兩個,然後從 pam_unix 切換到 pam_userdb crypt=none。或者,您可以僅將其放在 common-password 中(也保留 pam_unix),以便在更改密碼時僅記錄密碼。
  3. 您可以從 pam_unix 中刪除shadow(以及任何強雜湊選項)選項以禁用影子文件,並返回到傳統的 crypt 密碼。不是純文字,但開膛手約翰會為您解決這個問題。

有關更多詳細資訊,請查看PAM 系統管理員指南

您還可以編輯 PAM 的原始碼,或編寫自己的模組。您只需要編譯 PAM(或您的模組),無需其他任何東西。

引用自:https://unix.stackexchange.com/questions/145490