J'utilise la commande suivante pour créer un utilisateur dans une machine Linux:
useradd -d /home/dummy -g idiots -m -p 12345689 dummy
L'utilisateur est créé et le répertoire de base également.
Le problème est que je ne peux pas vous connecter au système à l'aide de ce compte puisque le -p
S'attend à ce que le mot de passe crypté renvoyé par crypto
.
Question: Je veux créer un utilisateur via un script Bash et je ne connais pas le mot de passe crypté par crypto
. Comment puis-je le faire afin que je puisse créer automatiquement cet utilisateur via un script et obtenir le problème avec le mot de passe?
Vous pouvez utiliser OpenSSL pour générer des chaînes de mots de passe pré-cryptées à utiliser avec l'option -p vers UserAddd
echo "P4sSw0rD" | openssl passwd -1 -stdin
$1$Jxmpx1Da$Y8MzBctIyDW8/7pFPbNWD1
Le -1
dit de générer un hachage de mot de passe MD5. Le sel est généré automatiquement.
Vous pouvez ensuite utiliser
useradd -d /home/dummy -g idiots -m -p $(echo "P4sSw0rD" | openssl passwd -1 -stdin) dummy
pour ajouter l'utilisateur. Pour ce faire cacher de manière interactive le mot de passe
useradd -d /home/dummy -g idiots -m -p $(read -sp Password: pw ; echo $pw | openssl passwd -1 -stdin) dummy
C'est comme ça que je le fais:
# cat user-pw_list
john:p455W0rD
geany:p455W0rD
# cat CreateUsers.sh
#!/bin/bash
#
# filename: CreateUsers.sh
# usage: cat "User:passwd" | $0
#
set -e
# set -x
while read ; do
USER=${REPLY%%:*}
PWD=${REPLY##*:}
# alternative for random passwd, where $RANDOM is a bash function
#PWD=${REPLY%%:*}$RANDOM$RANDOM
echo -e "adding User $USER "
# for disabled users: /usr/sbin/nologin, otherwise /bin/bash
/usr/sbin/useradd -c automaticUser -m -k/dev/null -s /usr/sbin/nologin $USER
echo "$USER:$PWD" | chpasswd --md5 $USER
## also add user to samba:
#echo -e "$PWD\n$PWD" | pdbedit -t -u $USER
done
Comme vous allez utiliser un script Bash, le bon vieux newusers
commander vous serait utile? Il lit son entrée à partir d'un fichier texte formaté comme suit:
pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_Shell
Et le mot de passe dans ce fichier devrait être un texte clair. Vous pouvez énumérer autant d'utilisateurs que vous le souhaitez dans le fichier d'entrée.
Pour plus d'informations, voir man newusers
.