Impossible de se connecter au nouveau compte utilisateur créé

25

En essayant de basculer les comptes vers mon compte nouvellement créé, j'obtiens un écran noir, puis il me ramène à l'écran de connexion principal après avoir entré le mot de passe correct.

En me connectant à mon compte existant, j'obtiens:

"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)

Quand j'essaye de su

su -l penner

Je reçois:

No directory, logging in with HOME=/

J'ai créé manuellement le répertoire personnel et cette erreur disparaît mais toujours pas de chance avec la connexion. Semble que quelque chose a mal tourné avec la création de l'utilisateur? Comment puis-je corriger cela?

penner
la source
Comment avez-vous créé le compte utilisateur? L'avez-vous fait depuis l'interface graphique ou depuis la ligne de commande? Si vous le faites à partir de la ligne de commande, vous devez savoir que adduser et useradd font les choses très différemment. De plus, il semble que les fichiers de / etc / skel n'aient pas été copiés. Pourriez-vous s'il vous plaît ls -al sur votre répertoire personnel et dans le répertoire du nouvel utilisateur afin que nous puissions voir ce qui se passe?
SuperMatt

Réponses:

31

Si vous avez créé le compte utilisateur avec useradd, vous devez tout configurer manuellement. C'est pourquoi, lors de la création de comptes d'utilisateurs à partir de la ligne de commande, il est recommandé d'utiliser à la place adduserdans Ubuntu (et Debian, et d'autres systèmes basés sur Debian). Vous pouvez simplement supprimer l'utilisateur avec userdelou deluseret le recréer avec adduser. Autrement...

Fixer l'emplacement du répertoire personnel

Si vous souhaitez conserver le compte utilisateur et résoudre le problème, vous devez regarder:

  • le nom du répertoire personnel pour lequel le compte d'utilisateur est réellement configuré
  • le nom du répertoire que vous avez réellement créé

Celles-ci doivent être exactement les mêmes. Le message d'erreur que vous obtenez vous indique su -l pennerqu'ils ne sont pas identiques.

Pour vérifier le répertoire personnel pour lequel le compte d'utilisateur est réellement configuré, exécutez cette commande (voir man 5 passwdet man greppour plus d'informations):

grep penner /etc/passwd

Vous devriez voir une ligne comme celle-ci:

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

C'est-à-dire que le sixième :champ séparé (après le cinquième :) contient le répertoire personnel. Si ce n'est pas le cas /home/penner, ça devrait l'être. Si le répertoire que vous avez créé pour l'utilisateur ne l'est pas /home/penner, il devrait l'être également. Si les deux répertoires sont identiques mais qu'aucun ne l'est /home/penner, alors cela pourrait théoriquement fonctionner, mais vous devriez les créer tous les deux /home/penner, car beaucoup de logiciels supposent que tous rootles répertoires personnels des non- utilisateurs le sont ./home/username

Vous pouvez changer pennerle répertoire personnel de /home/penneren en exécutant cette commande:

sudo usermod -d /home/penner penner

S'assurer qu'il s'agit d'un répertoire et que l'utilisateur a accès

Si (ou une fois) les noms sont les deux /home/penner, vous devez également vous assurer que l'utilisateur a accès à son propre répertoire personnel. Courir:

ls -ld /home/penner

Vous devriez voir quelque chose qui ressemble à ceci (bien que la date et l'heure soient différentes):

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

Si au lieu de drwxr-xr-x, vous avez quelque chose qui commence par -plutôt que d, alors vous avez créé un fichier plutôt qu'un répertoire. Supprimez le fichier et créez un répertoire à la place.

Si au lieu du premier pennervous avez quelque chose d'autre, alors l'utilisateur ne possède pas son répertoire personnel, alors faites-le lui appartenir:

sudo chown penner /home/penner

Si, au lieu de, drwxr-xr-xil y a des tirets dans les trois caractères suivants après d, alors l'utilisateur n'y a pas un accès complet. Corrigez cela comme suit:

sudo chmod u+rwx /home/penner

( pennerEst capable d'exécuter cette commande si elles sont propriétaires de leur répertoire, donc si vous préférez, vous pouvez exécuter ce que: sudo -u penner u+rwx /home/penner)

Veiller à ce que les autres utilisateurs n'aient pas accès en écriture à une couverture

Si au lieu de drwxr-xr-x, il y a ws au lieu de -s dans les six dernières lettres, les utilisateurs pennerpeuvent en outre avoir accès en écriture au pennerrépertoire personnel de. C'est dangereux (à moins que vous ne sachiez vraiment ce que vous faites et que vous le vouliez de cette façon et que vous ayez configuré les choses pour que ce ne soit pas un problème). Réparer:

sudo chmod -R go-w /home/penner

Autres valeurs par défaut

Vous voudrez peut-être apporter d'autres modifications. Par défaut dans Ubuntu (c'est-à-dire si vous créez un compte utilisateur avec adduserou avec un outil graphique, ce que vous n'avez pas fait):

  1. Les répertoires personnels ont des autorisations de lecture et d'écriture pour tout le monde, pas seulement pour l'utilisateur qui les possède. Les utilisateurs peuvent changer cela, soit pour l'ensemble du répertoire personnel, soit pour tous les fichiers et sous-répertoires qu'il contient. Mais si vous voulez cette valeur par défaut et que vous n'avez pas les deuxième et troisième ret xdans drwxr-xr-x, exécutez:

    sudo chmod 755 /home/penner
    

    ( pennerEst capable d'exécuter cette commande si elles sont propriétaires de leur répertoire, donc si vous préférez, vous pouvez exécuter ce que: sudo -u penner chmod 755 /home/penner)

  2. Chaque utilisateur a son propre groupe, avec le même nom que l'utilisateur, et c'est le groupe principal de l'utilisateur. Leur répertoire personnel appartient à ce groupe. C'est le sens du second pennerdans drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner. Vous pouvez rompre avec cette valeur par défaut, si vous savez ce que vous faites . Mais si ce n'est pas votre intention de faire les choses différemment, vous devez vous assurer que pennerc'est configuré de cette façon, car certaines identités de groupe principal possibles pour un utilisateur, ou les propriétaires de groupe sur le répertoire personnel de l'utilisateur, pourraient entraîner des problèmes de sécurité.

    Courez groups penner. (Voir man groupspour plus d'informations.) Vous devriez voir quelque chose comme ceci:

    penner : penner adm dialout cdrom plugdev lpadmin sambashare
    

    Ne vous inquiétez pas si ce n'est pas tout à fait ça. J'y reviendrai bientôt. Regardez plutôt le premier mot après le :. C'est le nom du groupe principal de l'utilisateur. En supposant que vous le vouliez penner, assurez-vous qu'il l'est. Si ce n'est pas le cas, changez-le:

    sudo usermod -g penner penner
    

    Si vous obtenez une erreur indiquant que le groupe pennern'existe pas, vous devrez le créer avec cette commande (puis réexécuter la commande ci-dessus):

    sudo addgroup penner
    
    • Voir man addgrouppour plus d'informations. (Si vous préférez, vous pouvez également utiliser la groupaddcommande pour créer des groupes.)
  3. Lorsque vous avez couru groups penner, vous avez peut-être obtenu une liste de groupes considérablement plus courte que la mienne penner : penner adm dialout cdrom plugdev lpadmin sambashare. Pour les utilisateurs de bureau, le adm, dialout, cdrom, plugdev, lpadminet sambasharefournir des capacités que les utilisateurs de bureau devraient généralement avoir. Par conséquent, sauf si vous avez une raison de faire autrement, vous pennerdevriez faire partie de ces groupes. Ce ne sont pas des groupes principaux, cependant, ils sont donc définis différemment. Supposons qu'il pennern'appartienne à aucun de ces groupes et que vous souhaitiez pennerfaire partie de chacun d'eux, exécutez cette commande:

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

    Si vous êtes intéressé, voici ce que signifient tous ces groupes:

    (Source: Privileges , dans le wiki de documentation d'Ubuntu.)

Faire de l'utilisateur un administrateur

Si vous ne voulez pennerpas être administrateur, vous n'avez probablement pas besoin de faire autre chose. Vous pouvez vérifier si pennerest un administrateur avec groups penner. Si ni adminni sudon'est répertorié, ce pennern'est pas un administrateur.

Si vous souhaitez pennerêtre administrateur, ajoutez pennerà l'un de ces groupes. (Vous pouvez aussi bien ajouter penneraux deux, s'ils existent tous les deux.) Vous pouvez accomplir cela en exécutant ces deux commandes séparément - si l'une ou l'autre réussit, vous avez nommé pennerun administrateur:

sudo usermod -a -G admin penner
sudo usermod -a -G sudo penner
  • La raison pour laquelle il existe deux groupes est qu'avant Ubuntu 12.04 LTS, les administrateurs faisaient partie du admingroupe. Depuis Ubuntu 12.04 LTS, les administrateurs sont dans lesudo groupe. Mais si votre système 12.04 LTS est mis à niveau à partir d'une version précédente (et cela devrait s'appliquer aux versions ultérieures d'Ubuntu, telles que 12.10 à sa sortie, qui sont mises à niveau à partir d'Ubuntu 11.10 ou version antérieure), alors pour la compatibilité descendante, les administrateurs sont membres des deux. sudoet admin. Généralement, si l'un de ces groupes ne confère pas de capacités administratives, il n'existe tout simplement pas, donc exécuter les deux commandes ci-dessus (séparément, pas comme sudo usermod -a -G admin,sudo penner) est généralement un moyen sûr et efficace de faire pennerun administrateur.
Eliah Kagan
la source
Merci! Quelque chose comme adduser est sympa mais j'aime aussi savoir faire les choses manuellement. Une réponse très complète! J'apprécie vraiment cela.
penner
sudo chmod u+a /home/pennerdonne une erreur sur Ubuntu 16.04 (Xenial). Est-ce sudo chmod u+rw /home/pennerun bon remplacement?
Nickolai Leschov
@NickolaiLeschov Désolé pour cela - et merci d'avoir signalé l'erreur! J'ai corrigé la commande.
Eliah Kagan
c'est juste stupide, pourquoi ne pas le retirer useraddalors? garder le code cassé aléatoire
dashesy
1
@dashesy Merci - Je n'étais pas au courant que l'utilisation useraddprovoque des problèmes sur Ubuntu qu'elle ne provoque pas sur d'autres systèmes. Sur mon système 16.04, /etc/default/useradda (comme sa seule ligne non SHELL=/bin/shcommentée ) , et useradd (8) semble dire que la SHELLvaleur y est utilisée si le drapeau -s/ --shelln'est pas donné, mais sur mon système 16.04 cela ne se produit pas. J'avais tort de dire si hâtivement qu'Ubuntu useraddn'est pas cassé. Maintenant, je n'en suis pas si sûr. Il y a peut-être une bonne raison à cette différence entre Fedora et Debian (et Ubuntu) ... mais j'ai supprimé mon commentaire afin de ne pas induire les gens en erreur.
Eliah Kagan
0

Cela se produit principalement lorsque vous créez l'utilisateur sans créer de répertoire personnel pour l'utilisateur. Cela peut être résolu en utilisant cette commande lors de la création d'un utilisateur

useradd -m the_username

L'indicateur -m est ce qui crée le répertoire personnel de l'utilisateur. Après avoir créé l'utilisateur, vérifiez si le répertoire personnel existe pour cet utilisateur en faisant

ls /home

Si vous pouvez voir ce nom d'utilisateur dans la liste, la dernière chose à faire est d'attribuer un mot de passe à cet utilisateur.

passwd the_username

Vous pouvez maintenant vous connecter avec ce nom d'utilisateur et ce mot de passe

macleash
la source
-1

ctrl + alt + f1 et connectez-vous là et exécutez

sudo chown -R $ USER: $ USER $ HOME

puis appuyez sur ctrl + alt + f7 et essayez de vous connecter

Ça va marcher

Shameer Theen H
la source