Cambio l'ultima riga in / etc / passwd e non posso usare sudo


15

Ecco cosa ho fatto:

  1. Cambia un nome utente nell'ultima riga: tinyinabc

    • tiny@tty7:~$ sudo vim /etc/passwd
    • Cambia questo:
      tiny:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
      in questo:
      abc:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
  2. tiny@tty7:~$ sudo vim /etc/shadow

    • mostra: [sudo] passwork for abc:

    • Non ho modificato la mia password ma non è possibile accedere come root!

    • Digito Ctrl+ Alt+ F1a tty1ma né tinyabc non riescono ad accedere con la mia password

e provo a guardare ls ~ -la, qui si presenta così:

drwxr-xr-x 28 abc tiny 4096 Apr 6 03:04 .

Come posso accedere a root? e perché il nome utente nel prompt è tiny@tty7ancora minuscolo mentre in sudo mostra la password dell'abc?

Risposte:


18

Il motivo per cui ti sei bloccato dopo la modifica è che il /etc/shadowfile conteneva una voce per la password di tinyma nessuna voce per abc, mentre il /etc/passwdfile conteneva una voce per abce non per tiny. Se sudoguardato, ti identificava correttamente (in base al file della password) come abcbasato sull'UID del processo che stavi eseguendo, ma quando guardava per confrontare ciò che hai inserito come password con la password crittografata (con hash) memorizzata /etc/shadow, non poteva trovare una voce per abc, quindi ha dovuto segnalare l'errore.

Come ha detto shaddy nella sua risposta , non modificare manualmente la password o i file shadow. Se devi infrangere la regola, modifica entrambi in un'unica chiamata di vime non uscire da vimfinché non hai dimostrato che le modifiche sono abbastanza sane da funzionare utilizzando un'altra finestra del terminale e salva le copie di backup dei file prima inizi a hackerarli e riconsidera perché stai infrangendo le regole, perché probabilmente non è una buona idea.


22

Non devi MAI modificare il tuo file passwd manualmente perché rovinerai tutto.

Il modo corretto di cambiare il tuo nome utente è:

usermod -l newUsername oldUsername

Quindi cambia la cartella principale:

usermod -d /home/newHomeDir -m newUsername

Per cambiare la password dovresti usare:

sudo passwd yourusername

Ti suggerisco di ripristinare il tuo file passwd o, se non riesci a modificarlo perché non riesci ad accedere con il root, quindi avvia con cd live e ripristina il file. Quindi utilizzare il modo corretto.


1
grazie ~ Ho pensato che il più difficile fosse il login con root, quindi mi riavvio, scelgo la modalità di revisione, root e poi riavvio il mio file passwd ~ funziona ~
tinyork,


-3

procedura per modificare manualmente il tuo nome utente (ma non uid):

  1. fai esaminare la testa, quando ciò fallisce procedi al secondo passaggio.
  2. modifica il file shadow duplicando la linea utente con il nuovo nome utente.
  3. modifica gruppi, sudoers, consentendo nuove autorizzazioni per il nome utente, mantieni vecchi
  4. collega simbolicamente la home directory al nuovo nome
  5. modifica il file passwd cambiando nome utente e home directory
  6. modifica ombra, sudoer, gruppi per rimuovere le vecchie voci che abbiamo mantenuto nel passaggio tre
  7. modifica alias e altri riferimenti al vecchio nome utente.
  8. disconnettersi, passare a una console di testo (il passaggio successivo non funzionerà se sono in esecuzione programmi nella directory home degli utenti, inclusi i gestori di finestre)
  9. cd in una directory sopra la home directory.
  10. rimuovere il collegamento simbolico e rinominare la home directory.
  11. disconnettersi e accedere normalmente.

Le cose sono molto più semplici per cambiare il nome utente altrui, sebbene non sia ancora semplice.

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.