# Surface sudo de l'agent AirLink (lot J2) — installé en /etc/sudoers.d/airlink.
#
# ⭐ Fichier UNIQUE et versionné, transporté par la release : jusqu'au 2026-08-10 ces lignes
# étaient écrites À LA VOLÉE par le provisionnement (un `echo >` puis un `echo >>`), donc
# invisibles au dépôt, différentes d'un boîtier à l'autre selon l'âge du provisionnement, et
# impossibles à faire évoluer sans passer machine par machine.
#
# 🔴 Ce fichier est la FRONTIÈRE DE PRIVILÈGE de l'agent : `wds` n'est root que pour ces
# commandes-là, et c'est le CONTENU des wrappers cités qui décide de ce que root fera.
# ⚠ Une erreur de syntaxe ici casse `sudo` EN ENTIER — l'agent perdrait d'un coup ses canaux,
# son playout et ses mises à jour. C'est pourquoi `apply.sh` ET le crochet de boot valident au
# `visudo -c` AVANT de poser, et sautent en laissant l'ancien en place plutôt que de rendre la
# machine muette.
#
# ⚠ sudo >= 1.9.10 interdit les jokers d'arguments : on autorise LE SCRIPT, jamais ses
# arguments — la validation de ceux-ci vit donc DANS chaque wrapper, et elle y est la seule
# barrière (cf. l'en-tête de wds-restart-channel).

wds ALL=(root) NOPASSWD: /usr/local/bin/wds-airlink-update
wds ALL=(root) NOPASSWD: /usr/local/bin/wds-restart-channel
wds ALL=(root) NOPASSWD: /usr/local/bin/wds-restart-playout
wds ALL=(root) NOPASSWD: /usr/local/bin/wds-console
