Víme, že hesla uživatelů jsou uložena v /etc/passwd
, ale zašifrovaným způsobem, takže je nevidí ani root:
jane:x:501:501::/home/jane:/bin/bash
fred:x:502:502::/home/fred:/bin/bash
Jak je uvedeno výše, :x:
představuje heslo.
Existuje způsob (možná konfigurace) pro uložení hesla do /etc/passwd
v čistém textu a tak, aby je root viděl?
Přijatá odpověď:
Další dvě odpovědi vám řekly – správně! – že toto je špatný nápad™ . Ale také vám řekli, že je to těžké k tomu, což vyžaduje změnu řady programů.
To není pravda. Je to velmi jednoduché. Stačí změnit jeden nebo dva konfigurační soubory. Považuji za důležité na to upozornit, protože byste si toho měli být vědomi při přihlašování do systémů, které nekontrolujete. Ty ve skutečnosti nevloží heslo ve formátu prostého textu do /etc/passwd
nebo /etc/shadow
, přejde do jiného souboru. Všimněte si, že jsem je netestoval, protože bych raději neměl své heslo v prostém textu.
-
Upravte
/etc/pam.d/common-password
(pro zachycení změny hesla) nebo/etc/pam.d/common-auth
(pro zachycení přihlášení) a přidejte… pam_exec expose_authtok log=/root/passwords /bin/cat
-
Upravte oba a přepněte z pam_unix na pam_userdb pomocí
crypt=none
. Případně jej můžete vložit pouze do společného hesla (a nechat pam_unix také), aby se hesla pouze zaznamenávala, když se změní. -
Můžete odstranit
shadow
(stejně jako jakékoli silné hashovací možnosti) možnost z pam_unix deaktivovat stínový soubor a vrátit se k tradičním šifrovacím heslům. Není to prostý text, ale John the Ripper to za vás opraví.
Další podrobnosti naleznete v příručce správce systému PAM.
Můžete také upravit zdrojový kód PAM nebo napsat svůj vlastní modul. Potřebujete pouze zkompilovat PAM (nebo váš modul), nic jiného.