Créer un utilisateur et son passwd en une commande

Voici un petit mémo pour créer un utilisateur et son mot de passe sur une ligne de commande.

Pour créer l’utilisateur starmate et lui mettre azerty en mot de passe (en root sur RedHat et dérivés):

useradd starmate ; echo azerty | passwd --stdin starmate

Pour Debian/Ubuntu et ses dérivés, toujours en root (le \n fait un retour à la ligne):

useradd starmate ; echo -e "azerty\nazerty" | passwd starmate

Et sinon, cette commande marche partout (toujours en root):

useradd starmate ; echo 'starmate:azerty' | chpasswd

Du coup pour créer plusieurs utilisateurs et leur mot de passe sur la même ligne, en root (RedHat):

useradd starmate ; echo azerty | passwd --stdin starmate ; useradd antoine ; echo azerty | passwd --stdin antoine ; useradd francois ; echo azerty | passwd --stdin francois ; useradd pierre ; echo azerty | passwd --stdin pierre

Pour créer un utilisateur et son un mot de passe sur 100 serveurs RedHat allant de 10.16.54.1 à 10.16.54.100:

for ((i=1;i<=100;i++)); do ssh root@10.16.54.$i 'useradd starmate ; echo azerty | passwd --stdin starmate'; done

La même chose pour 100 serveurs Debian/Ubuntu:

for ((i=1;i<=100;i++)); do ssh root@10.16.54.$i 'useradd starmate ; echo -e "azerty\nazerty" | passwd starmate'; done

Pour créer un utilisateur et son un mot de passe sur 2 serveurs RedHat et 2 serveurs Debian:

for i in redhat1 redhat2 debian1 ubuntu1 ;  do ssh root@$i 'useradd starmate ; echo 'starmate:azerty' | chpasswd'; done

Dernier exemple pour des serveurs RedHat renseignés dans un fichier (1 par ligne):

for i in `cat serveurs.txt`; do ssh root@$i 'echo -e "useradd starmate ; echo azerty | passwd --stdin starmate'; done

Du coup, faites attention à votre historique, les mots de passe y seront affichés en clair.

Derniers Articles