Perché posso avviare una shell di root con sudo anche con un '! 'nella sua voce ombra?


9
$cat /etc/passwd |grep -i root
root:x:0:0:root:/root:/bin/bash

$sudo cat /etc/shadow |grep -i root
root:!:17179:0:99999:7:::

Nel secondo campo del file shadow, !significa che l'utente root non può accedere ma perché posso accedere all'utente root sudo su?

Perché non riesco ad accedere all'utente root da su rooto su -?


1
"Nel secondo campo del file shadow,! Significa che l'utente root non può accedere" No, non è così. Dove l'hai sentito?
Corse della leggerezza in orbita,

@LightnessRacesinOrbit, cosa significa?
George Udosen,

@Gorge: Muru ha citato il manuale nella sua risposta e lo ha spiegato in dettaglio. Dovresti leggere la documentazione!
Corse della leggerezza in orbita,

Risposte:


15

Un campo della password crittografata !nella shadowvoce indica che nessuna password può eseguire l'autenticazione. Da man shadow:

If the password field contains some string that is not a valid
result of crypt(3), for instance ! or *, the user will not be able
to use a unix password to log in (but the user may log in the
system by other means).

Come dice il manuale, questo non significa che non è possibile accedere come root. Significa solo che non è possibile accedere come root usando una password per l'account root. (È possibile accedere come root tramite SSH utilizzando le chiavi SSH, ad esempio, se lo si era configurato in precedenza, anche se l'account è bloccato.)

sudonormalmente si autentica con la tua password, non con quella di root. Questo può essere cambiato impostando uno dei targetpw, rootpwo runaspwin sudoers. Se si imposta una di queste opzioni e si tenta di utilizzare una password quando la password è bloccata, ciò non riuscirà .


Bene, significa che posso passare a qualsiasi utente sudo con la mia password o è utente attivo o blocca utente, giusto?
Sinoosh,

1
@Sinoosh non ipotizzando altre restrizioni, sì
muru,

4

Ora diamo un'occhiata ai comandi di conseguenza:

  1. sudo su:

    • sudoesegue il comando su(utente sostitutivo) con i privilegi di root, quindi anche se /etc/shadowdice o ha root:!:17179:0:99999:7:::ancora i comandi con i privilegi di root.
  2. su -oppure su root:

    • Questo in realtà passa alla root che dal /etc/shadowfascicolo non può accedere in modo da utilizzare questi comandi non lavoro. Se vuoi che funzionino, devi sbloccare l' account root assegnandogli una password.

Sommario:

su -0r su rootpassa alla radice dell'utente , non esiste quindi non può accadere, ma sudo suesegue il comando switch con rootprivilegi, quindi in questo caso andrà se ci si trova nel sudogruppo. In questo caso non stai effettivamente effettuando il login come root, agendo solo come root, così andrà.

Fonte: Qual è la differenza tra "su -" e "su root"?


Grazie, significa sudo suche non vede i campi di passaggio nel file shadow?
Sinoosh,

1
@Sinoosh sudo suè il modo sbagliato di correre sudo sho sudo bash.
Bakuriu,
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.