web-dev-qa-db-fra.com

le mot de passe ne fonctionne pas avec useradd -p

Je cours Ubuntu 14.04 LTS. J'ai lancé la commande suivante pour créer un utilisateur

$Sudo useradd -m -p password1 guest_user

puis essayé de passer à l'utilisateur avec

$su guest_user

Mais je ne pouvais pas me connecter avec password1

Est-ce que je manque quelque chose? Suis-je censé me connecter avec password1 ou autre chose, comme le dit l'option -p dans la page de manuel de useradd

 -p, --password PASSWORD
           The encrypted password, as returned by crypt(3). The default is to disable the password.

           Note: This option is not recommended because the password (or encrypted password) will be
           visible by users listing the processes.

           You should make sure the password respects the system's password policy.

Ce qui précède me perturbe parce que quand je tape la commande

useradd -m -p motdepasse1

le mot de passe password1 est visible sur la ligne de commande. Comment le rendre invisible dans la commande ci-dessus?

6
user2065276

De man useradd:

-p, --password PASSWORD
           The encrypted password, as returned by crypt(3). The default is to disable the password.

Comme vous pouvez le voir, PASSWORD avec l'option -p est le mot de passe chiffré renvoyé par la fonction de bibliothèque crypt(3).

Si vous utilisez -p password1, le système considérera ce texte en clair password1 comme une entrée de mot de passe masquée chiffrée dans /etc/shadow.

La solution consiste à utiliser le mot de passe chiffré ici avec -p qui est nsafe, vous devez définir le mot de passe de manière interactive.

Par exemple, créez d'abord le suer:

Sudo useradd -m -s /bin/bash guest_user

Maintenant, définissez le mot de passe:

Sudo passwd guest_user

Ou mieux, utilisez adduser à la place:

Sudo adduser --gecos '' guest_user
6
heemayl

Essayez d'ajouter un argument après chaque option que vous souhaitez utiliser. Par exemple:

    useradd -m guest_user -p passwd1

Comme le suggère la page de manuel de useradd, ajouter votre mot de passe de cette manière n'est pas considéré comme sécurisé car il est transmis en texte brut. Pour une alternative, essayez:

    Sudo useradd -m guest_user

et alors:

    Sudo passwd guest_user

Deux mises en garde:

  • la ligne commençant par: NAME_REGEX = in: /etc/adduser.conf peut interdire l’utilisation du caractère de soulignement "_" pour les noms d’utilisateur;

  • des exigences relatives à la complexité des mots de passe peuvent être définies dans: /etc/pam.d/common-password, ce qui nécessite un mot de passe plus complexe.

2
marshki