Re-bonjour tout le monde,
Je cherche à automatiser l’envoi de commandes SSH via l’outil n8n.
Cela fonctionne sans difficultés, sauf avec des commandes de type sudo, puisqu’il faut taper un mot de passe de manière interactive pour l’exécuter. J’ai beau chercher, je n’ai pas trouvé de solution magique.
Pour le moment, je m’oriente vers une modification du fichier de configuration sudoers pour autoriser l’utilisation d’une commande sans mot de passe, comme expliqué à ces deux liens :
Sauf que je ne pige pas. Je veux donner à un utilisateur le droit de faire sudo apt update.
Donc, j’ajoute la ligne : utilisateur ALL=(ALL) NOPASSWD: /usr/bin/apt ?
Si vous avez d’autres idées plus générales, je suis preneur.
Bonjour. Exemple de sudoers
User alias specification
User_Alias SPAML=nobody
User_Alias NMAP=www-data
User_Alias ALIAS=postfix,nobody
Cmnd alias specification
Cmnd_Alias SPAM=/usr/bin/sa-learn
Cmnd_Alias NMAP=/usr/bin/nmap
Cmnd_Alias ALIASCMD=/usr/local/bin/setVideo.sh, /usr/bin/sudo
User privilege specification
root ALL=(ALL:ALL) ALL
Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
SPAML ALL=NOPASSWD: SPAM
NMAP ALL=NOPASSWD: NMAP
ALIAS ALL=NOPASSWD: ALIASCMD
···
Le 17/02/2026 à 17:08, Optogram via Alsace Réseau Neutre a écrit :
Re-bonjour tout le monde,
Je cherche à automatiser l’envoi de commandes SSH via l’outil n8n.
Cela fonctionne sans difficultés, sauf avec des commandes de type
sudo, puisqu’il faut taper un mot de passe de manière interactive pour
l’exécuter. J’ai beau chercher, je n’ai pas trouvé de solution magique.
Pour le moment, je m’oriente vers une modification du fichier de
configuration sudoers pour autoriser l’utilisation d’une commande sans
mot de passe, comme expliqué à ces deux liens :
Sauf que je ne pige pas. Je veux donner à un utilisateur le droit de
faire |sudo apt update|.
Donc, j’ajoute la ligne : |utilisateur ALL=(ALL) NOPASSWD: /usr/bin/apt| ?
Si vous avez d’autres idées plus générales, je suis preneur.
Voir le sujet https://forum.arn-fai.net/t/topic/12784/1 ou répondre
à cet e-mail pour répondre.
Vous recevez cet e-mail car vous avez activé la liste de diffusion.
Pour vous désabonner de ces e-mails, cliquez ici
<>.
Je ne comprends pas ce que je lis, peux-tu détailler l’extrait ?
Ce sont des alias d’utilisateurs SUDO et leurs Cmnd autorisée-s
Un exemple: l’utilisateur NMAP a le droit d’utiliser l’alias NMAP sans
mot de passe, la commande qui sera éxécutée est /usr/bin/nmap
···
Le 17/02/2026 à 18:12, Optogram via Alsace Réseau Neutre a écrit :
Je ne comprends pas ce que je lis, peux-tu détailler l’extrait ?
Voir le sujet https://forum.arn-fai.net/t/topic/12784/3 ou répondre
à cet e-mail pour répondre.
Vous recevez cet e-mail car vous avez activé la liste de diffusion.
Pour vous désabonner de ces e-mails, cliquez ici
<>.
Ne cherche pas plus loin, tu as la solution.
Personnellement, je coderai un script shell qui enrobe les commandes. Parce que dans ton cas, si un petit malin devient ton utilisateur, il pourra installer un paquet arbitraire.
adminuser ALL=(root) NOPASSWD: /root/.local/bin/system-updater
#!/usr/bin/env bash
# /root/.local/bin/system-updater
apt update
exec apt dist-upgrade -yqq
Et je maintiens mon sudoers dans /etc/sudoers.d/$machine
Mais j’avoue, le sudoers c’est assez cabalistique comme syntaxe :-/
1 « J'aime »
Et ensuite, tu lances le script en utilisateur standard ? L’emplacement ne pose pas de problème de droits ?
Oui.
En fait, quand sudo est exécuté, l’OS lui permet (grace au sticky bit) de changer de UID et UID effectif. Donc sudo s’exécute, regarde quel utilisateur il est (l’utilisateur qui a lancé la commande), change son UID vers root, lit sa configuration (qui normalement n’est pas accessible en lecture aux utilisateurs normaux), puis détermine s’il peut lancer la commande demandée avec l’utilisateur demandé. Si tout va bien, sudo va changer d’utilisateur (si besoin) et lancer la commande.
Je vais essayer tout ça maintenant 
Pour information, j’ai fait tourner le modèle gpt-oss:20b sur mon serveur pour lui poser la question :
Dans la syntaxe sudoers, que signifie cette ligne de configuration ? adminuser ALL=(root) NOPASSWD: /root/.local/bin/system-updater
Et voici les réponses :
Interprétation de la ligne
adminuser ALL=(root) NOPASSWD: /root/.local/bin/system-updater
Dans le fichier sudoers chaque entrée suit généralement la forme :
<utilisateur> <hôte> = (runas) <options> : <commande>
Voici ce que signifie chaque partie de votre ligne :
| Élément |
Signification |
Exemple dans la ligne |
adminuser |
Le nom de l’utilisateur (ou un alias d’utilisateur) qui reçoit le droit. |
adminuser |
ALL |
La liste d’hôtes sur lesquels cette règle s’applique. ALL signifie tous les hôtes où le fichier sudoers est chargé. |
ALL |
(root) |
Le runas‑user : l’utilisateur sous lequel la commande sera exécutée. Ici, la commande sera lancée en tant que root. |
(root) |
NOPASSWD: |
Option indiquant qu’aucun mot‑de‑passe ne doit être demandé à l’utilisateur lorsqu’il exécute la commande. |
NOPASSWD: |
/root/.local/bin/system-updater |
Le chemin absolu de la commande autorisée. Seul ce fichier précis est autorisé ; aucune autre commande ne peut être exécutée par cette règle. |
/root/.local/bin/system-updater |
Ce que cela permet concrètement
Contexte d’utilisation
Cette syntaxe est fréquemment utilisée pour permettre à un administrateur (ou à un script) de mettre à jour le système automatiquement sans intervention manuelle, tout en limitant les privilèges à la commande exacte nécessaire.
Remarques de sécurité
- Ne donnez ce type d’accès qu’à des scripts soigneusement vérifiés et testés.
- Évitez d’autoriser l’exécution de commandes dans des répertoires peu sûrs.
- Utilisez des alias (
Cmnd_Alias, Runas_Alias, User_Alias) si vous avez besoin de gérer plusieurs commandes ou utilisateurs de façon plus claire.
En résumé, la ligne ci‑dessus autorise l’utilisateur adminuser à exécuter le script system-updater comme root sur n’importe quel hôte, sans qu’il ne doive saisir son mot‑de‑passe.
Alors, résultat des courses :
- Sur un système Debian standard, avec un mot de passe et utilisateur root, ça marche.
- Sur un système Debian Yunohost, il n’y a plus d’utilisateur root, ça marche pas.
@Aleks ou @ljf Comment ça se passe chez Yunohost ?
Je relance le sujet, je n’ai pas trouvé la solution à mon problème depuis 