15 votes

le mot de passe ne fonctionne pas avec useradd -p

Je suis sous ubuntu 14.04 LTS. J'ai exécuté la commande suivante pour créer un utilisateur

$sudo useradd -m -p password1 guest_user

et a ensuite essayé de passer à l'utilisateur avec

$su guest_user

Mais je n'ai pas pu me connecter avec le mot de passe 1

Est-ce que j'ai manqué quelque chose ? Suis-je censé me connecter avec le mot de passe 1 ou autre chose comme l'option -p le dit 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 m'embrouille car lorsque je tape la commande

useradd -m -p password1

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

13voto

heemayl Points 85741

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 constater, le PASSWORD con -p est le mot de passe crypté renvoyé par l'option crypt(3) fonction de bibliothèque.

Si vous utilisez -p password1 le système considérera ce texte en clair password1 comme l'entrée cryptée du mot de passe fantôme dans /etc/shadow .

La solution est d'utiliser le mot de passe crypté ici avec -p qui est non sécurisé 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 au lieu de :

sudo adduser --gecos '' guest_user

6voto

Chhaileng Points 161

Vous pouvez utiliser perl pour imprimer le mot de passe crypté et l'utiliser avec -p option dans useradd commandement.

$ sudo useradd -m -p $(perl -e 'print crypt($ARGV[0], "password")' 'YOUR_PASSWORD') username

Vous pouvez également l'utiliser avec d'autres options comme -s pour Shell ou -d pour le répertoire personnel.

3voto

marshki Points 316

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

    useradd -m guest_user -p passwd1

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

    sudo useradd -m guest_user

et ensuite :

    sudo passwd guest_user

Deux mises en garde :

  • la ligne qui commence par : NAME_REGEX= dans : /etc/adduser.conf peut interdire l'utilisation du caractère de soulignement "_" pour les noms d'utilisateur ;

  • il peut y avoir des exigences de complexité du mot de passe : /etc/pam.d/common-password qui nécessitent un mot de passe plus complexe.

1voto

gaetan1903 Points 11

Une alternative à faire ce que vous voulez est :

$ sudo su
# useradd -m USER && echo "USER:PASSWORD" | chpasswd

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X