Configurer doas sur Debian 13
1. Qu'est-ce que doas et à quoi ça sert ?
doas est un utilitaire qui sert à exécuter des commandes avec des privilèges élevés (root), de manière similaire à sudo. Historiquement, doas provient d'OpenBSD où il est conçu pour être plus simple et plus minimaliste que sudo.
Les avantages de doas peuvent être résumés ainsi :
- Configuration plus concise : un seul fichier de configuration /etc/doas.conf, avec une syntaxe généralement plus claire.
- Moins de complexité : moins de fonctionnalités avancées que sudo, mais souvent suffisant pour de nombreux cas d'usage.
- Philosophie "pour un usage simple" : si vous n'avez pas besoin de règles ultra-granulaires, doas peut être une alternative pratique.
Comme sudo, doas permet de ne pas se connecter directement en root, limitant les risques d'erreur et améliorant la traçabilité.
2. Installation de doas sur Debian 13
2.1 Mettre à jour la liste des paquets
Avant l'installation, il est recommandé de mettre à jour l'index des dépôts :
sudo apt update
(Si vous n'avez pas sudo, exécutez ces commandes en tant que root :)
su -
apt update
2.2 Installer le paquet opendoas
Sur Debian 13, l'implémentation se nomme opendoas. Pour l'installer, faites :
sudo apt install opendoas
ou, si vous êtes déjà root :
apt install opendoas
(Il se peut que le paquet s'appelle juste doas sur d'autres distributions, mais sur Debian, c'est opendoas.)
3. Configuration de base
La configuration principale de doas repose dans le fichier :
/etc/doas.conf
Si le fichier n'existe pas, vous pouvez le créer. L'accès en écriture au fichier doit être limité au superutilisateur (root).
En effet, la règle générale est que /etc/doas.conf doit être lisible seulement par root, souvent avec des permissions de type -rw------- (600).
3.1 Syntaxe générale
La syntaxe de doas est relativement simple :
permit [options] [as <user>] [cmd <command>] [args <args>]
- permit : mot-clé permettant d'autoriser l'exécution.
- :groupe : ajoutez un : devant le nom pour désigner un groupe, sinon c'est un nom d'utilisateur.
- as : indique l'utilisateur (et éventuellement le groupe) que l'on veut "incarner" lors de l'exécution (par défaut root).
- cmd : précise un binaire / commande spécifique.
- args : si on veut n'autoriser que certains arguments.
- persist ou nopass : options permettant respectivement de mémoriser l'authentification sur une durée limitée ou de ne pas demander de mot de passe.
3.2 Exemple minimal : autoriser un utilisateur à tout faire
Pour autoriser un utilisateur, par exemple alice, à exécuter toutes les commandes en tant que root, avec demande de mot de passe, on peut placer dans /etc/doas.conf :
permit alice
Ici, on n'indique pas de as root car c'est implicite (la cible par défaut est root).
3.3 Demande de mot de passe et persistance
- Par défaut, doas vous demandera le mot de passe de l'utilisateur (pas celui de root).
- Si l'on souhaite que doas mémorise l'authentification pendant un temps court (persist), on ajoute l'option persist :
permit persist alice
Dès que alice aura entré son mot de passe une première fois, la session retiendra l'authentification pour quelques minutes (similaire à sudo).
3.4 Autoriser sans mot de passe
Pour autoriser un utilisateur à exécuter des commandes spécifiques sans mot de passe, on peut utiliser l'option nopass. Exemple :
permit nopass alice cmd apt args update
Ici, alice peut faire :
doas apt update
sans être invité à saisir de mot de passe.
Mais si elle tente doas apt upgrade, ça ne fonctionnera pas, car ce n'est pas autorisé.
Pour autoriser l'utilisation de toute la commande apt :
permit nopass alice cmd apt
Ainsi, Alice pourra exécuter toutes les commandes apt (search, install, purge etc...)
On peut également autoriser toutes les commandes sans mot de passe :
permit nopass alice
Attention : comme pour sudo, autoriser trop largement sans mot de passe peut poser des risques de sécurité.
4. Cas pratiques et usages courants
4.1 Exemple de configuration "classique"
Imaginons un fichier /etc/doas.conf :
# Alice a tous les droits, et doit taper son mot de passe, avec "persist"
permit persist alice
# Bob est autorisé uniquement à faire "shutdown -h now" sans mot de passe
permit nopass bob cmd shutdown args -h now
- Pour Alice :
- Toutes les commandes sont autorisées en tant que root,
- Le mot de passe utilisateur d'Alice est demandé la première fois,
- Ensuite, la session "persist" quelques minutes.
- Pour Bob :
- Il peut uniquement exécuter la commande /sbin/shutdown avec l'argument -h now.
- Aucune demande de mot de passe ne sera faite pour cette commande précise.
4.2 Utilisation
L'usage est semblable à sudo, sauf qu'on tape doas à la place de sudo.
Exemples :
doas apt update
doas apt install htop
doas reboot
4.3 Vérifier la configuration
Pour relire et vérifier rapidement la configuration, doas ne propose pas la même commande que visudo, mais on peut faire :
doas -C /etc/doas.conf
Cela détectera certaines erreurs de syntaxe, mais de manière moins poussée que visudo.
En pratique, éditez le fichier avec votre éditeur favori (nano, vim, etc.) et vérifiez bien les permissions.
5. Bonnes pratiques et différences avec sudo
- Fichier unique /etc/doas.conf
- Contrairement à sudo qui peut s'éparpiller dans /etc/sudoers et /etc/sudoers.d/, doas centralise généralement tout dans /etc/doas.conf.
- Syntaxe plus simple, mais moins de granularité
- doas ne permet pas toujours des règles aussi complexes que sudo (ex. pas d'alias de commandes, pas de réglages par TTY, etc.).
- Pour la plupart des usages (droits administrateur de base, configurations simples), doas est amplement suffisant.
- Sécurité et permissions
- Assurez-vous que /etc/doas.conf soit uniquement modifiable par root
chown root:root /etc/doas.conf et chmod 600 /etc/doas.conf
-
- Un fichier de configuration mal protégé pourrait être modifié par un utilisateur malveillant, ce qui lui donnerait potentiellement un accès root.
- Ne pas abuser de nopass
- Comme avec sudo, autoriser des commandes sans demande de mot de passe peut être risqué. Utilisez-le avec parcimonie, pour des commandes précises et peu dangereuses.
- Différences d'interface
- doas -s ou doas -u root bash peuvent servir à lancer un shell root, comme sudo su -.
- doas n'a pas d'équivalent direct à sudoedit, mais vous pouvez faire doas sh -c "editor /chemin/fichier" si nécessaire.
Conclusion
doas (OpenDoas) est une alternative légère à sudo, particulièrement appréciée pour sa configuration minimaliste. Sur Debian 13, l'installation est simple via le paquet opendoas. Ensuite, quelques lignes dans /etc/doas.conf suffisent pour autoriser tel ou tel utilisateur (ou groupe) à exécuter des commandes avec les droits de root.
Résumé des étapes :
- Installer : apt install opendoas
- Créer / modifier le fichier /etc/doas.conf (droits 600, propriétaire root).
- Ajouter des règles du type permit [nopass|persist] utilisateur [as root] [cmd ... args ...]
- Tester avec des commandes doas .
Si vous n'avez besoin que d'une configuration basique (un utilisateur privilégié ou quelques règles), doas est un outil pratique, plus simple que sudo, tout en conservant la philosophie de ne pas être en root en permanence.
↑ Haut de page