Ubuntu 14.04: Un nouvel utilisateur créé à partir de la ligne de commande possède des fonctionnalités manquantes

16

J'essaie de créer un nouvel utilisateur dans Ubuntu 14.04 LTS à partir de la ligne de commande bash. J'utilise les commandes suivantes:

sudo useradd -c "Samwise the Brave" sam    
sudo passwd sam    
Enter new UNIX password: hello-1234    
Retype new UNIX password: hello-1234    
passwd: password updated successfully

Après avoir créé ce nouvel utilisateur, j'ai rencontré 3 problèmes:

  1. Je ne peux pas me connecter à Ubuntu en utilisant l'utilisateur sam. Chaque fois que je me connecte, je suis renvoyé à l'écran de connexion.

  2. Lorsque je regarde le fichier /etc/passwd , je constate qu’il n’ya pas de shell par défaut défini pour l’utilisateur sam:

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. Le dossier personnel de Sam n’a pas été créé, c’est-à-dire que /home/sam n’existe pas.

Des indices sur ce qui pourrait causer tous ces problèmes?

Je dois noter ici que lorsque je crée un utilisateur à l'aide du centre de contrôle Unity, ces problèmes ne se produisent pas. Mais je voudrais pouvoir utiliser la ligne de commande car j'ai des dizaines d'utilisateurs à créer.

    
posée phodor 02.07.2015 - 06:05
la source

5 réponses

27

Remarquez d'abord qu'il est préférable d'utiliser adduser et non useradd.

Revenons maintenant à votre commande:

Vous devez exécuter la commande de la manière suivante:

sudo useradd -m -c "Samwise the Brave" sam  -s /bin/bash 

man useradd

  -s, --shell SHELL
           The name of the user's login shell. The default is to leave this
           field blank, which causes the system to select the default login
           shell specified by the SHELL variable in /etc/default/useradd, or
           an empty string by default.

 -m, --create-home
           Create the user's home directory if it does not exist. The files
           and directories contained in the skeleton directory (which can be
           defined with the -k option) will be copied to the home directory.

           By default, if this option is not specified and CREATE_HOME is not
           enabled, no home directories are created.

Vous manquez donc d'utiliser -s pour ajouter votre shell de connexion et -m pour créer votre maison.

Si vous voulez ajouter plusieurs utilisateurs en même temps, mieux vaut utiliser la commande newusers . Cela simplifiera votre tâche.

man newusers

DESCRIPTION

   The newusers command reads a file of user name and clear-text password
   pairs and uses this information to update a group of existing users or
   to create new users. Each line is in the same format as the standard
   password file (see passwd(5)) with the exceptions explained below:

   pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

Voici un tutoriel sur la commande newusers :

réponse donnée Maythux 02.07.2015 - 07:28
la source
1

Lorsque vous manquez des drapeaux et que les autres réponses ne sont pas nécessairement erronées, envisagez d’exécuter adduser si vous voulez qu'il soit plus complet à l'avenir. C'est une version plus jolie de useradd. À savoir, il va créer un répertoire personnel par défaut contrairement à useradd. Notez également que lorsque vous demandez une tonne de choses, il les stocke en ligne sur le fichier / etc / passwd et vous n’avez pas à les remplir.

    
réponse donnée Michael Bailey 02.07.2015 - 07:21
la source
1

Merci à tous. Avec vos réponses, j'ai pu résoudre le problème à l'aide des lignes de commande suivantes.

sudo useradd -c "Samwise the Brave" -m -s /bin/bash sam
echo -e "hello-1234\nhello-1234" | passwd sam

Le mot de passe est défini avec passwd , il est donc déjà chiffré (sinon "hello-1234" ne semble pas chiffré dans / etc / passwd).

    
réponse donnée phodor 04.07.2015 - 03:01
la source
1

Créer un utilisateur

Créer le répertoire personnel de l'utilisateur

Définir le shell de connexion

useradd -m -d /home/username username -s /bin/bash

Supprimer l'utilisateur

Supprimer le répertoire de base de l'utilisateur

userdel -r username
    
réponse donnée Sai 28.09.2016 - 19:25
la source
0

Il manque des indicateurs dans la commande useradd. '-m' pour créer le répertoire utilisateur, '-s / bin / bash' pour ajouter le shell bash. La valeur par défaut est de ne pas créer un répertoire utilisateur et d'affecter le shell par défaut. Mon système a fait la même chose quand je l'ai testé, donc il semble que Ubuntu 14.04 utilise le blanc comme shell par défaut. Vous ne pouvez pas vous connecter car vous n'avez pas de shell.

Créer un répertoire personnel par défaut pour les utilisateurs existants dans le terminal (Question 335961, 3ème réponse)

À partir de la page de manuel Ubuntu pour useradd

   -s, --shell SHELL
       The name of the user´s login shell. The default is to leave this
       field blank, which causes the system to select the default login
       shell.

Comment changez-vous le shell par défaut pour TOUS LES UTILISATEURS en bash ? Question 335961

    
réponse donnée Codeguy007 02.07.2015 - 07:08
la source

Lire d'autres questions sur les étiquettes