Lxc - modifier le mdp root automatiquement

Sous debian 9 j’utilise régulièrement lxc et pour des essais je souhaite pouvoir modifier le mdp root automatiquement.
La cde suivante ne fonctionne pas :

lxc-atttach -n name – echo root:pwd | chpasswd

Celles-ci fonctionnent, mais je suis obligé de saisir le mdp

lxc-attach -n name – passwd

lxc-attach -n name
echo root:pwd | chpasswd
exit

Je me réponds
cela fonctionne très bien en mettant la cde dans un script.

PS : l’echo du attach ne doit pas arrivé “au bon endroit”, je n’ai pas creusé la question

En effet. C’est la même erreur courante qu’avec sudo. Toute l’expression, et notamment la redirection (pipe), est interprétée par le shell de l’hôte de la façon suivante :

  • exécuter la commande lxc-attach -n name – echo root:pwd
  • envoyer la sortie standard de la commande lxcattach à l’entrée standard de la commande chpasswd

chpasswpd est exécuté dans le shell de l’hôte, pas dans le conteneur.

Pour effectuer la redirection dans le conteneur, Il faut l’envoyer à un shell du conteneur :

    lxc-attach -n name – sh -c "echo root:pwd | chpasswd"
1 J'aime

Lla partie command située après le --- dans la commande lxc-attach doit être une commande simple du genre

commande |options]  args

pas une commande composée interprétée par le shell telle que

  • un pipeline
echo root:passwd | tee -a pwd.lst | chpasswd
  • une combinaison avec &&et/ou ||
fgrep root /usr/sbin/chpasswd && echo OK || echo non

Naturellement si la commande est dans un script, c’est une solution :slight_smile:
Vous pouvez tenter en mettant la commande complexe entre quotes

lxc-attach - name  --  ' echo root:passwd | tee -a pwd.lst | chpasswd'

et ce que vous appelez au bon endroit serait aussi dans le fichier pwd.lst (vraisemblablement dans le répertoire /root du conteneur name )

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac


F. Petitjean
Ingénieur civil du Génie Maritime.
06 58 86 91 99

1 J'aime

Merci à vous deux, c’est plus clair comme cela.
A noter que le man de lxc-attach était clair, il ne parle que d’une seule commande!