web-dev-qa-db-fra.com

Impossible de se connecter au compte utilisateur nouvellement créé

En essayant de changer de compte sur mon compte nouvellement créé, un écran noir s’affiche, puis il me ramène à l’écran principal de connexion après avoir entré le bon mot de passe.

En me connectant à mon compte précédent, je reçois:

"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. Vous semblez avoir un problème avec la création de l'utilisateur? Comment puis-je corriger cela?

24
penner

Si vous avez créé le compte d'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 adduser dans Ubuntu (et Debian, ainsi que d'autres systèmes basés sur Debian). Vous voudrez peut-être simplement supprimer l'utilisateur avec userdel ou deluser et le recréer avec adduser. Autrement...

Correction de l'emplacement du répertoire de base

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

  • le nom du répertoire de base pour lequel le compte d'utilisateur est actuellement configuré
  • le nom du répertoire que vous avez créé

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

Pour vérifier le répertoire de base pour lequel le compte d'utilisateur a été configuré, exécutez cette commande (voir man 5 passwd et man grep pour plus d'informations):

grep penner /etc/passwd

Vous devriez voir une ligne comme ceci:

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

Autrement dit, le sixième champ :- séparé (après le cinquième :) contient le répertoire de base. Si ce n'est pas /home/penner, ça devrait l'être. Si le répertoire que vous avez créé pour l'utilisateur n'est pas /home/penner, il devrait l'être également. Si les deux répertoires sont identiques mais que ni l'un ni l'autre n'est /home/penner, alors cela pourrait fonctionner en théorie, mais vous devriez leur attribuer la valeur /home/penner car de nombreux logiciels supposent que tous les répertoires de départ des utilisateurs non -root sont /home/username.

Vous pouvez modifier le répertoire de base de penner en /home/penner en exécutant la commande suivante:

Sudo usermod -d /home/penner penner

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

Si (ou une fois) les noms sont tous les deux /home/penner, vous devez également vous assurer que l'utilisateur a accès à son propre répertoire de base. 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, 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 de la première penner, vous avez autre chose, l'utilisateur ne possède pas son répertoire personnel, donc indiquez-le:

Sudo chown penner /home/penner

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

Sudo chmod u+rwx /home/penner

(penner est capable d'exécuter cette commande s'il possède son répertoire personnel. Si vous préférez, vous pouvez l'exécuter en tant que: Sudo -u penner u+rwx /home/penner)

S'assurer que les autres utilisateurs n'ont pas accès en écriture à la couverture

Si, au lieu de drwxr-xr-x, il y a ws au lieu de -s dans les six dernières lettres, alors les utilisateurs autres que penner peuvent avoir un accès en écriture au répertoire personnel de penner. C’est dangereux (à moins que vous vraiment ​​sachiez ce que vous faites et que vous le vouliez de cette façon et que vous avez tout mis en place pour que cela ne pose pas de 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 sous Ubuntu (c'est-à-dire si vous créez un compte utilisateur avec adduser ou avec un outil graphique, ce que vous n'avez pas fait):

  1. Les répertoires de base 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, que ce soit pour tout le répertoire de base ou 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 r et x dans drwxr-xr-x, exécutez:

    Sudo chmod 755 /home/penner
    

    (penner est capable d'exécuter cette commande s'il possède son répertoire personnel. Si vous préférez, vous pouvez l'exécuter en tant que: Sudo -u penner chmod 755 /home/penner)

  2. Chaque utilisateur a son propre groupe, portant le même nom que l'utilisateur, et il s'agit du groupe principal de l'utilisateur. Leur répertoire personnel appartient à ce groupe. C'est le sens de la deuxième penner dans drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner. C'est bien de rompre avec ce 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 penner est configuré de cette façon, car certaines identités de groupe primaire possibles pour un utilisateur, ou des propriétaires de groupe dans le répertoire de base de l'utilisateur, pourraient conduire à des problèmes de sécurité.

    Exécutez groups penner. (Voir man groups pour 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 comme ça. J'y viendrai bientôt. Au lieu de cela, regardez le premier mot après le :. C'est le nom du groupe principal de l'utilisateur. En supposant que vous souhaitiez que ce soit penner, assurez-vous de l’être. Si ce n'est pas le cas, changez-le:

    Sudo usermod -g penner penner
    

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

    Sudo addgroup penner
    
    • Voir man addgroup pour plus d'informations. (Si vous préférez, vous pouvez également utiliser la commande groupadd pour créer des groupes.)
  3. Lorsque vous avez exécuté groups penner, vous avez peut-être reçu une liste de groupes considérablement plus courte que mon penner : penner adm dialout cdrom plugdev lpadmin sambashare. Pour les utilisateurs d'ordinateurs de bureau, les options adm, dialout, cdrom, plugdev, lpadmin et sambashare devraient généralement être appropriées. Par conséquent, sauf si vous avez une raison de faire autrement, penner devrait faire partie de ces groupes. Ce sont pas groupes primaires, cependant, ils sont donc configurés différemment. En supposant que penner ne figure dans aucun de ces groupes et que vous souhaitiez que penner soit dans chacun d'entre eux, exécutez cette commande:

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

    Si cela vous intéresse, voici ce que tous ces groupes veulent dire:

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

Faire de l'utilisateur un administrateur

Si vous ne voulez pas que penner soit administrateur, vous n'avez probablement rien d'autre à faire. Vous pouvez vérifier si penner est un administrateur avec groups penner. Si ni admin ni Sudo ne sont répertoriés, alors penner n'est pas un administrateur.

Si vous souhaitez que penner soit un administrateur, ajoutez penner à l’un de ces groupes. (Vous pouvez également ajouter penner aux deux, s'ils existent.) Vous pouvez y parvenir en exécutant ces deux commandes séparément. Si l'une des deux réussit, vous avez fait de penner un administrateur:

Sudo usermod -a -G admin penner
Sudo usermod -a -G Sudo penner
  • La raison pour laquelle il existe deux groupes est qu’avant la version Ubuntu 12.04 LTS, les administrateurs appartenaient au groupe admin. À partir de Ubuntu 12.04 LTS, les administrateurs appartiennent au groupe Sudo. 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 d’une version antérieure), les administrateurs sont membres des deux Sudo et admin. Généralement, si l'un de ces groupes ne confère pas de capacités administratives, il n'existe tout simplement pas. Par conséquent, exécuter les deux commandes ci-dessus (séparément, pas en tant que Sudo usermod -a -G admin,Sudo penner) est généralement un moyen sûr et efficace de transformer penner en administrateur.
30
Eliah Kagan

Cela se produit généralement lorsque vous créez l'utilisateur sans créer de répertoire de base pour l'utilisateur. Cela peut être résolu en utilisant cette commande lors de la création de l'utilisateur

useradd -m the_username

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

ls /home

Si vous pouvez voir que le nom d'utilisateur y est indiqué, 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 mot de passe

0
macleash