Versione breve:
I contenuti di - / etc / shadow ti indicheranno il formato utilizzato da ciascun utente, ma
ha bisogno di root per vederli - @MikeScott lo inchioda.
I file - /etc/pam.d/* ti diranno in che formato un sistema codifica nuove password
con e dovrebbe essere accessibile agli utenti regolari, che potrebbero essere tutto ciò che possiedi.
Versione lunga:
La maggior parte dei moderni sistemi Unix e Linux utilizzano PAM, i moduli di autenticazione pluggable, per la gestione dell'autenticazione. Di conseguenza, l'algoritmo di hashing utilizzato per crittografare le password viene in genere definito in uno dei file /etc/pam.d/*. Sbirciando su Ubuntu 14, vedo che è nel file /etc/pam.d/common-password:
# Explanation of pam_unix options:
#
# The "sha512" option enables salted SHA512 passwords. Without this option,
# the default is Unix crypt. Prior releases used the option "md5".
#
password [success=1 default=ignore] pam_unix.so obscure sha512
Quindi, su questo sistema, le voci nel file / etc / shadow dovrebbero avere password che iniziano con $ 6 $. Se guardo / etc / shadow come root, posso vedere che in effetti tutte le (entrambe) password di questo sistema sono sha512:
# awk -F: '$2 ~ /^\$/ {print $2}' /etc/shadow | cut -c-10
$6$6I2Lrdb
$6$tvKWuGb
#
Essendo Pam così flessibile, scoprirai che si trova in un file diverso su ogni tipo di sistema che guardi. Sotto RedHat, ad esempio, sembra essere /etc/pam.d/system-auth.
Questo ti dice quale hash della password verrà creato quando una nuova password è impostata su questo sistema. Gli hash delle password effettivi in uso varieranno a seconda di dove o quando sono venuti. Se un sistema utilizzava MD5 e passa a SHA512, allora non tutti gli hash cambiano - il vecchio hash rimane in uso fino alla prossima volta che un utente cambia la sua password. Se gli hash vengono copiati da altrove (sì, succede) puoi ottenere un vero e proprio melange di hash delle password. Ecco perché il formato utilizzato è codificato nella stringa di password con hash ($ 6 $, $ 1 $, ecc. Ecc.), Quindi il sistema sa come testarlo.
Quindi l'unico modo per sapere con certezza quale hash si sta usando è avere i privilegi di root (e guardare il proprio hash in / etc / shadow), o vedere quale sia il default del sistema è (in /etc/pam.d/*) e cambia la tua password in modo che l'impostazione predefinita si applichi a te.
Etcetera
Come sottolineato da @grawity nei commenti, i vecchi sistemi / distribuzioni Linux possono ancora onorare ENCRYPT_METHOD impostazione nel file /etc/login.defs . (Questo file e le impostazioni sono ancora lì su nuovi sistemi, è più o meno silenziosamente deprecato se PAM è in uso).
E anche se Solaris ha usato PAM l'ultima volta che ho controllato, un po 'di Google suggerisce che per cambiare il tipo di hash della password predefinito dovresti invece cambiare CRYPT_DEFAULT in /etc/security/policy.conf .
AIX ride di fronte a ciò che passa per gli standard Unix in questi giorni, proprio come hanno sempre fatto. L'impostazione pwd_algorithm in /etc/security/login.cfg farà il trucco per AIX 5.3 +.
In generale, comunque, qualsiasi variante Unix che supporti più di DES fornirà un metodo per configurare l'impostazione predefinita del sistema. Se esegui sistemi non menzionati qui, modifica questo Google cerca e guarda cosa puoi scoprire.