Étiquette : stdin

1 mars 2016 /

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.

14 juin 2015 /

Le signe « – » n’est pas en lui-même un opérateur lorsqu’un nom de fichier est attendu, c’est plutôt une option reconnue par certains Unix et Linux. Cela écrit dans la sortie standard (stdout) ou lit dans l’entrée standard (stdin), comme par exemple tar ou cat, mais il y en a d’autre

Voici un exemple avec cat:

echo "salut" | cat -

Cela affichera:

salut

Voici un exemple avec tar:

tar -cvf - /home/starmate | ssh sauvegarde@sauvegarde.home "cat > sauvegarde.tar"

Ici tar va envoyer la création de l’archive dans la sortie standard, qui sera pipée ( | ) via SSH sur le serveur « sauvegarde.home ». Puis son affichage via cat sera redirigé dans un fichier sauvegarde.tar dans le répertoire personnel de l’utilisateur local « sauvegarde ».

Un  » –  » redirige donc la sortie vers stdout ou accepte une entrée de stdin, plutôt qu’un fichier.
Cette méthode est utilisé principalement lorsque l’on juge utile de manipuler des fichiers à travers des tubes.