Differenza fra ! vs !! vs * in / etc / shadow


38

Il secondo campo nel /etc/shadowfile Linux rappresenta una password. Tuttavia, ciò che abbiamo visto è che:

  1. Alcuni dei campi password possono avere un'unica esclamazione

    <account>:!:.....
    
  2. Alcuni dei campi password possono avere una doppia esclamazione

    <account>:!!:.....
    
  3. Alcuni dei campi password possono avere un asterisco

    <account>:*:.....
    

Da alcune ricerche su internet e attraverso questa discussione , posso capire che *significa password mai stabilite, !significa bloccate.

Qualcuno può spiegare cosa significa doppia esclamazione ( !!)? e in cosa differisce da ( !)?


Quale distribuzione stai usando?
muru,

Ciao Muru, sono nuovo di Unix e sto provando a creare uno script che verrà eseguito su RHEL 6.6 e HP-UX B.11.23
JavaTec,

3
"Per convenzione, gli account a cui non si desidera accedere (es. Bin, demone, sshd) contengono solo un singolo asterisco nel campo della password. Notare che non c'è niente di speciale in '*', è solo uno dei tanti caratteri che non può verificarsi in una password crittografata valida (vedi crypt (3)). " - Pagina man di OpenBSD per passwd (5) . Mi aspetterei! o !! non essere diverso, tecnicamente, riguardo al fatto che si tratti di un file passwd valido o agli accessi. Tuttavia, alcuni strumenti potrebbero avere un supporto speciale.
TOOGAM il

1
Non usare il doco dei BSD come riferimenti per questo. Il loro database degli account gestisce le cose in modo diverso e non ha nemmeno un /etc/shadowfile. Non inserire le risposte nei commenti . ☺
JdeBP,

Risposte:


31

Tutti e due "!" e "!!" essere presente nel campo password significa che un account è bloccato.

Come può essere letto nel seguente documento, "!!" in una voce dell'account in ombra significa che l'account di un utente è stato creato, ma non è ancora stata data una password. Fino a quando non viene fornita una password iniziale da un amministratore di sistema, è bloccata per impostazione predefinita.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/s2-redhat-config-users-process.html


4
Questo forse è vero sui sistemi Red Hat, ma non necessariamente altrove - su Ubuntu o Arch Linux, un account appena creato senza password ha ancora !, no !!.
muru,

2
È vero che non ho mai visto un "!!" in un sistema Debian. Immagino che l'OP stia usando un sistema basato su RH o SuSE.
Rui F Ribeiro,

Grazie per le vostre risposte rapide, la spiegazione di cui sopra fornita da Rui - sarebbe valida anche per un hp-ux?
JavaTec,

4
@JavaTec Non necessariamente: penso che tutti gli unice che hanno /etc/shadowlo stesso campo, ma varia il modo in cui il campo password memorizza le informazioni senza password. Controllare la documentazione di HP-UX, a partire dalla shadowpagina man.
Gilles 'SO- smetti di essere malvagio' il

1
HP-UX non lo aveva nemmeno /etc/shadowfino a tempi relativamente recenti: prima di HP-UX 11.11, le opzioni erano la classica shadowless /etc/passwdo "Trusted Computing Base", che memorizzava gli hash delle password di ogni utente e altre informazioni sull'account in singoli file denominati /tcb/files/auth/<initial>/<username>, leggibili solo da root. In HP-UX 11.11, è /etc/shadowstato introdotto come extra opzionale , in 11.23 era un'opzione nel sistema operativo di base e in 11.31 il TCB è stato infine deprecato.
telcoM

10

Potrebbe anche valere la pena notare <account>::.....che non è richiesta alcuna password (password vuota).

Se si sta creando un utente solo ssh, è possibile utilizzare <account>::0:0:99999:7:::per richiedere che l'utente imposti la propria password (ovvero che utilizzi per sudo) al primo accesso.


8
Attenzione a questo. Un campo vuoto significa che non c'è password e devi solo premere INVIO per accedere, almeno nella console.
Rui F Ribeiro,

Dal man shadowcampo relativo alla password crittografata: "Questo campo potrebbe essere vuoto, nel qual caso non è richiesta alcuna password per l'autenticazione come nome di accesso specificato." <- Lasciare questo campo vuoto comporta un account aperto e questo dovrebbe davvero essere evitato!
Lasa il

Si noti che molte implementazioni SSH bloccano l'accesso su account con password null per impostazione predefinita: sudo /usr/sbin/sshd -T| grep emptyrestituirebbe: "allowemptypasswords no"
Brian Huntley
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.