In un moderno sistema Unix o Linux, come si può sapere quale codice imposta il file /etc/passwd
memorizza i nomi utente in? I nomi utente sono autorizzati a contenere caratteri accentati (nell'intervallo 0x80..0xFF in, ad esempio, ISO 8859-1 o 8859-15)? Il file /etc/passwd
può contenere UTF-8? Puoi dire che contiene UTF-8? Che dire del semplice testo delle password prima che siano crittografate o con hash?Quale set di codici è/etc/passwd memorizzato? Può essere UTF-8? Quali sono i limiti posti ai nomi degli utenti?
Chiaramente, se i nomi utente e altri dati sono limitati all'intervallo 0x00..0x7F (ed esclude comunque 0x00), non vi è alcuna differenza tra UTF-8, 8859-1 o 8859-15; i personaggi presenti sono tutti codificati allo stesso modo.
Inoltre, sto usando /etc/passwd
come abbreviazione per qualcosa sulla falsariga di "l'identificazione dell'utente e il server di autenticazione (a volte chiamato un servizio di directory) su una macchina Unix-based, di solito si accede tramite PAM e talvolta ospitati su altri macchine del tutto da quella locale, ma a volte ancora in realtà un file sul disco rigido locale, convenzionalmente chiamato /etc/passwd
, spesso supportato da /etc/shadow
". Suppongo anche che le domande equivalenti sul database di gruppo (spesso il file /etc/group
) abbiano la stessa risposta.
Potete fornire prove documentali (URL) per l'affermazione? E cosa succede se i byte non ASCII vengono inseriti nel file/etc/passwd? –
Grazie per le informazioni extra. Supponendo di avere una macchina accessibile da persone provenienti dagli Stati Uniti (terminali 8859-1), Germania (8859-15) e Taiwan (UTF-8). Quale set di codici è il file password memorizzato ora? –
È ancora tutto ASCII. Ciò che puoi digitare varierà con le impostazioni locali del terminale. Ma l'output della funzione di hash sarà sempre ASCII. Ad esempio, puoi creare un file contenente i caratteri che ti piacciono e l'esecuzione md5 su di esso - e il set di caratteri del file originale non ha nulla a che fare con il set di caratteri dell'hash risultante. (Tradizionalmente, l'hash passwd è generato da crypt, senza md5 però) – nont