Impossibile accedere all'account utente appena creato


25

Provando a cambiare account con il mio account appena creato ottengo una schermata nera e poi mi riporta alla schermata di accesso principale dopo aver inserito la password corretta.

Accedendo al mio account precedentemente esistente ottengo:

"System Program Problem Detected"

Details:

Executable path /usr/bin/Xorg

Package: xserver-xorg-core 2:1.11.4-0ubuntu10.1

Details: Crash
... (tons more, but no way to copy paste or save)

Quando provo a fare su

su -l penner

Ottengo:

No directory, logging in with HOME=/

Ho creato manualmente la home directory e questo errore scompare, ma non ho ancora avuto fortuna con il login. Sembra che qualcosa sia andato storto nella creazione dell'utente? Come posso correggere questo?


Come hai creato l'account utente? L'hai fatto dalla GUI o dalla riga di comando? Se lo fai dalla riga di comando, devi essere consapevole che adduser e useradd fanno le cose in modo molto diverso. Inoltre, sembra che i file da / etc / skel non siano stati copiati. Potresti per favore ls -al nella tua home directory e nella nuova directory dell'utente in modo che possiamo vedere cosa sta succedendo?
SuperMatt il

Risposte:


31

Se hai creato l'account utente con useradd, devi impostare tutto manualmente per esso. Questo è il motivo per cui, quando si creano account utente dalla riga di comando, si consiglia di utilizzare invece adduserUbuntu (e Debian e altri sistemi basati su Debian). Potresti semplicemente voler rimuovere l'utente con userdelo deluserricrearlo con adduser. Altrimenti...

Correzione della posizione della directory principale

Se si desidera mantenere l'account utente e risolvere il problema, è necessario esaminare:

  • il nome della home directory per cui l'account utente è effettivamente configurato
  • il nome della directory che hai effettivamente creato

Questi devono essere esattamente gli stessi. Il messaggio di errore che ricevi su -l pennerindica che non sono uguali.

Per controllare la home directory per cui l'account utente è effettivamente configurato, eseguire questo comando (vedere man 5 passwde man grepper ulteriori informazioni):

grep penner /etc/passwd

Dovresti vedere una linea come questa:

penner:x:1000:1000:Eliah Kagan,,,:/home/penner:/bin/bash

Cioè, il sesto :campo separato (dopo il quinto :) contiene la home directory. Se non lo è /home/penner, dovrebbe essere. Se la directory che hai creato per l'utente non lo è /home/penner, dovrebbe esserlo anche. Se le due directory sono uguali ma nessuna delle due /home/penner, teoricamente potrebbe funzionare, ma dovresti realizzarle entrambe /home/penner, poiché molti software presuppongono che tutte rootle home directory degli utenti non lo siano ./home/username

È possibile modificare pennerla home directory in /home/pennereseguendo questo comando:

sudo usermod -d /home/penner penner

Assicurarsi che sia una directory e che l'utente abbia accesso

Se (o una volta) i nomi sono entrambi /home/penner, è necessario assicurarsi che l'utente abbia accesso alla propria home directory. Correre:

ls -ld /home/penner

Dovresti vedere qualcosa che assomiglia a questo (anche se la data e l'ora saranno diverse):

drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner

Se invece di drwxr-xr-x, hai qualcosa che inizia con -piuttosto che con d, allora hai creato un file anziché una directory. Elimina il file e crea una directory lì.

Se invece del primo pennerhai qualcos'altro, l'utente non possiede la propria directory home, quindi falla possedere:

sudo chown penner /home/penner

Se al posto di drwxr-xr-xci sono trattini nei tre caratteri successivi dopo il d, l'utente non ha pieno accesso lì. Risolvilo come segue:

sudo chmod u+rwx /home/penner

( pennerè in grado di eseguire questo comando se possiede la propria directory home, quindi se preferisci, puoi eseguirlo come sudo -u penner u+rwx /home/penner:)

Garantire che altri utenti non abbiano accesso in scrittura in coperta

Se invece di drwxr-xr-x, ci sono ws invece di -s nelle ultime sei lettere, allora gli utenti pennerpotrebbero avere accesso in scrittura alla pennerhome directory. Questo è pericoloso (a meno che tu non sappia davvero cosa stai facendo e lo desideri in questo modo e abbia impostato le cose in modo che non sia un problema). Per risolverlo:

sudo chmod -R go-w /home/penner

Altri valori predefiniti

Ci sono alcune altre modifiche che potresti voler apportare. Di default in Ubuntu (cioè se si crea un account utente con addusero con uno strumento grafico, cosa che non si è fatto):

  1. Le home directory hanno autorizzazioni di lettura e scrittura per tutti, non solo per l'utente che li possiede. Gli utenti possono cambiarlo, sia per l'intera home directory o per qualsiasi file e sottodirectory al suo interno. Ma se vuoi questo valore predefinito e non hai il secondo e il terzo re xdentro drwxr-xr-x, esegui:

    sudo chmod 755 /home/penner
    

    ( pennerè in grado di eseguire questo comando se possiede la propria directory home, quindi se preferisci, puoi eseguirlo come sudo -u penner chmod 755 /home/penner:)

  2. Ogni utente ha il proprio gruppo, con lo stesso nome dell'utente, e questo è il gruppo principale dell'utente. La loro home directory è di proprietà di questo gruppo. Questo è il significato del secondo pennerin drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner. Va bene interrompere questa impostazione predefinita, se sai cosa stai facendo . Ma se non è tua intenzione fare le cose in modo diverso, dovresti assicurarti che pennersia impostato in questo modo, poiché alcune possibili identità di gruppi primari per un utente o proprietari di gruppi nella home directory dell'utente potrebbero causare problemi di sicurezza.

    Corri groups penner. (Vedi man groupsper maggiori informazioni.) Dovresti vedere qualcosa del genere:

    penner : penner adm dialout cdrom plugdev lpadmin sambashare
    

    Non preoccuparti se non è proprio così. Ci arrivo presto. Invece, guarda la prima parola dopo il :. Questo è il nome del gruppo principale dell'utente. Supponendo che tu lo voglia essere penner, assicurati che lo sia. In caso contrario, cambiarlo:

    sudo usermod -g penner penner
    

    Se ricevi un errore che dice che il gruppo pennernon esiste, dovrai crearlo con questo comando (e quindi eseguire nuovamente il comando sopra):

    sudo addgroup penner
    
    • Vedi man addgroupper maggiori informazioni. (Se preferisci, puoi in alternativa usare il groupaddcomando per creare gruppi.)
  3. Quando hai corso groups penner, potresti aver ottenuto un elenco di gruppi considerevolmente più breve del mio penner : penner adm dialout cdrom plugdev lpadmin sambashare. Per gli utenti desktop, il adm, dialout, cdrom, plugdev, lpadmin, e sambashareforniscono le capacità che gli utenti desktop dovrebbero generalmente avere. Pertanto, a meno che tu non abbia un motivo per fare diversamente, pennerdovrebbe essere in questi gruppi. Questi non sono gruppi primari, tuttavia, quindi sono impostati in modo diverso. Supponendo che pennernon sia presente in nessuno di questi gruppi e che si desidera pennerfar parte di tutti questi, eseguire questo comando:

    sudo usermod -a -G adm,dialout,plugdev,lpadmin,sambashare penner
    

    Se sei interessato, ecco cosa significano tutti quei gruppi:

    (Fonte: Privilegi , nel wiki della documentazione di Ubuntu.)

Trasformare l'utente in amministratore

Se non vuoi penneressere un amministratore, probabilmente non devi fare altro. Puoi verificare se pennerè un amministratore con groups penner. Se nessuno dei due adminsudoè elencato, pennernon è un amministratore.

Se vuoi penneressere un amministratore, aggiungi pennera qualunque di questi gruppi esiste. (Puoi anche aggiungere pennerad entrambi, se esistono entrambi.) Puoi farlo eseguendo questi due comandi separatamente - se uno dei due riesce, hai creato pennerun amministratore:

sudo usermod -a -G admin penner
sudo usermod -a -G sudo penner
  • La ragione per cui ci sono due gruppi è che, prima di Ubuntu 12.04 LTS, gli amministratori erano nel admingruppo. A partire da Ubuntu 12.04 LTS, gli amministratori fanno parte del sudogruppo. Ma se il tuo sistema LTS 12.04 è aggiornato da una versione precedente (e questo dovrebbe applicarsi alle versioni successive di Ubuntu, come 12.10 quando esce, che sono aggiornate da Ubuntu 11.10 o precedente), quindi per compatibilità con le versioni precedenti, gli amministratori sono membri di entrambi sudoe admin. Generalmente, se uno di questi gruppi non conferisce capacità amministrative, semplicemente non esiste, quindi eseguire entrambi i due comandi sopra (separatamente, non come sudo usermod -a -G admin,sudo penner) è generalmente un modo sicuro ed efficace per creare pennerun amministratore.

Grazie! Qualcosa come adduser è carino ma mi piace sapere come fare anche le cose manualmente. Una risposta molto approfondita! Lo apprezzo molto.
penner

sudo chmod u+a /home/pennerdà un errore su Ubuntu 16.04 (Xenial). È sudo chmod u+rw /home/penneruna sostituzione corretta?
Nickolai Leschov,

@NickolaiLeschov Siamo spiacenti, e grazie per aver segnalato l'errore! Ho corretto il comando.
Eliah Kagan,

questo è solo stupido, perché non rimuoverlo useradd? mantenendo un codice casuale non funzionante
dashesy

1
@dashesy Grazie - Non ero a conoscenza del fatto che l'utilizzo useraddcausa problemi su Ubuntu che non causa su altri sistemi. Sul mio sistema 16.04, /etc/default/useraddha (come unica riga non commentata) SHELL=/bin/she useradd (8) sembra dire che il SHELLvalore è usato se il -s/ --shellflag non viene dato, ma sul mio sistema 16.04 ciò non accade. Ho sbagliato a dire così in fretta che Ubuntu useraddnon è rotto. Ora non ne sono così sicuro. Forse c'è una buona ragione per questa differenza tra Fedora e Debian (e Ubuntu) ... ma ho eliminato il mio commento per non fuorviare le persone.
Eliah Kagan,

0

Ciò accade soprattutto quando si crea l'utente senza creare una home directory per l'utente. Questo può essere risolto usando questo comando durante la creazione dell'utente

useradd -m the_username

Il flag -m è ciò che crea la home directory per l'utente. Dopo aver creato l'utente, controlla se esiste la home directory per quell'utente

ls /home

Se riesci a vedere quel nome utente elencato lì, l'ultima cosa da fare è assegnare una password a quell'utente

passwd the_username

Ora puoi accedere con quel nome utente e quella password


-1

ctrl + alt + f1 e accedi lì ed esegui

sudo chown -R $ USER: $ USER $ HOME

quindi premere ctrl + alt + f7 e provare ad accedere

Funzionerà

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.