Comment configurer sudo pour Docker
Précision minimum
Lors de l'installation de Fedora Linux, et plus précisément au moment de la création de l'utilisateur initial, on a la possibilité de lui donner les droits administrateur. C'est facile à faire, et une fois que c'est fait, on en parle plus.
En coulisse, cette étape va ajouter l'utilisateur simple au groupe "wheel". Cet utilisateur spécial dispose d'une configuration sudo prête à l'emploi. On peut voir si notre utilisateur fait parti de ce groupe avec la commande id :
$ id -nG
casper wheel mock
On peut visualiser les commandes possibles avec sudo :
$ sudo -l
L'utilisateur casper peut utiliser les commandes suivantes sur vulcain :
(ALL) ALL
On constate que l'utilisateur "casper" peut lancer toutes les commandes avec sudo. Le problème est résolu... ou pas.
L'inconvéniant est qu'il faut taper son mot de passe à chaque fois. Cette solution ne me convient pas. J'ai envie de faire le minimum, c'est à dire valider la commande avec Entrée puis la commande s'exécute.
Voici un exemple avec une commande au hasard :
$ sudo ls /root/
[sudo] Mot de passe de casper :
...
Si vous avez un mot de passe de 15 caractères, l'enchainement de commandes va très vite devenir douloureux.
Précision maximum
Un utilisateur simple n'a pas besoin de pouvoir lancer n'importe quelle commande en root. Pour moi, seul l'utilisateur root à ce droit. Et je le sais bien, car j'ai toujours 1 terminal en root comme roue de secours. Mais pour les commandes que je lance 5 fois par jour, je préfère pouvoir les lancer avec mon utilisateur normal. Ce sont toujours les mêmes. La répétition diminue les risques.
Les commandes à lancer étant parfaitement identifiées, elles ne représentent aucun risque pour la stabilité de mon système. C'est vrai pour la commande docker.
Je passe par un fichier séparé car c'est plus facile à backuper.
Pour créer le fichier de config :
# touch /etc/sudoers.d/<nom_de_machine>
# chmod 640 /etc/sudoers.d/<nom_de_machine>
(Le nom du fichier et les permissions sont importantes ici).
Ensuite, on peut ajouter nos préférences dedans :
User_Alias MOI = casper
Cmnd_Alias DOCKER = /usr/bin/docker
MOI ALL = NOPASSWD: DOCKER
Il faut fermer complètement la session, puis se reconnecter, pour que les changements prennent effet :
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
fantomfp/poezio-omemo 0.13.1-9.fr cbcbefb62aae 4 months ago 430MB
L'avantage est qu'il devient possible de lancer toutes les commandes Docker en utilisateur simple, comme Podman. Tout simplement.
Référence : Doc Fedora-Fr.org