Aller au contenu

Guide d'utilisation d'Augeas pour gérer vos configs

J’ai découvert Augeas un peu par hasard, en plongeant dans la documentation de libguestfs pour mon projet. Je rappelle que mon objectif est de créer un outil capable de valider la compatibilité d’une image de VM pour différents fournisseurs de cloud. Grâce à libguestfs, je peux accéder au contenu des disques virtuels de ces images sans les démarrer, ce qui est extrêmement pratique pour analyser et ajuster des configurations.

En creusant dans les fonctionnalités de libguestfs, je suis tombé sur Augeas, un outil intégré qui permet de lire et modifier facilement les fichiers de configuration des systèmes. Plutôt que de manipuler les configurations en texte brut, Augeas propose une structure d’arborescence, rendant chaque paramètre accessible et modifiable de manière beaucoup plus sûre et intuitive.

Et je ne vais pas le cacher, j’adore !

Fonctionnement d’Augeas

Augeas est un outil puissant qui simplifie la manipulation des configurations. Son fonctionnement est basé sur une architecture qui transforme les fichiers de configuration en arbres de données, facilitant leur exploration et modification.

Au cœur d’Augeas, on trouve les lenses, qui sont des règles permettant de traduire les fichiers de configuration en arbres structurés. Ce sont un peu comme des filtres qui décodent chaque fichier texte pour le rendre manipulable dans un format standard. Il existe déjà de nombreux lenses pour les configurations courantes, mais Augeas permet également de créer des lenses personnalisées pour des fichiers moins conventionnels.

La bibliothèque libaugeas est le moteur principal d’Augeas. Elle est responsable de lire et interpréter les fichiers de configuration en appliquant les lenses appropriées. Elle crée ensuite une arborescence de données que l’utilisateur peut manipuler. Libaugeas ne se limite pas à la lecture ; elle peut également modifier les valeurs de l’arbre et sauvegarder ces modifications directement dans les fichiers de configuration, sans perturber les commentaires ou le format du fichier.

L’arborescence de nœuds créée par libaugeas facilite énormément la navigation et la modification des valeurs. Chaque paramètre est identifiable par un chemin spécifique, un peu comme un chemin de fichier dans un système UNIX. Cela signifie que vous interagissez avec des arbres structurés, ce qui permet des modifications ciblées et précises.

Un exemple pratique

Pour bien comprendre le fonctionnement d’Augeas, prenons un exemple concret de lecture d’un paramètre spécifique dans le fichier de configuration GRUB, en l’occurrence GRUB_CMDLINE_LINUX_DEFAULT. Ce paramètre, souvent situé dans /etc/default/grub, contient les options passées par défaut au noyau Linux au démarrage. C’est un point d’entrée utile pour vérifier ou ajuster certaines configurations de démarrage, comme l’activation d’options spécifiques au noyau.

Lorsque le fichier /etc/default/grub est chargé par Augeas, il est converti en un arbre de données grâce à une lens dédiée. Plutôt que de lire le fichier ligne par ligne comme dans un éditeur texte classique, Augeas utilise cette lens pour identifier chaque paramètre et créer une structure en arbre, où chaque option est un nœud distinct.

Ainsi, le paramètre GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" sera traduit en un nœud facilement accessible, sous la forme d’un chemin unique dans l’arbre Augeas, tel que :

/files/etc/default/grub/GRUB_CMDLINE_LINUX_DEFAULT

Grâce à cette arborescence, il devient possible de naviguer directement vers le paramètre souhaité. Dans notre exemple, le nœud GRUB_CMDLINE_LINUX_DEFAULT contient la valeur actuelle définie dans le fichier de configuration, en l’occurrence "quiet splash". Il est possible de lire cette valeur simplement en accédant au nœud correspondant, sans avoir à parcourir le fichier manuellement.

Cette méthode d’accès direct permet d’éviter les erreurs de lecture ou d’interprétation, car Augeas s’assure que la valeur associée est exactement celle spécifiée dans le fichier de configuration.

Il est possible de modifier la valeur directement en assignant un nouveau contenu au nœud. Par exemple, si l’on souhaite ajouter une option au noyau, comme nomodeset, on pourrait simplement assigner la nouvelle valeur "quiet splash nomodeset" à ce nœud. Augeas gère alors la modification du fichier de configuration pour que la valeur soit mise à jour en toute sécurité.

Lors de cette modification, Augeas préserve le format original du fichier /etc/default/grub, y compris les commentaires et l’ordre des paramètres. Cela permet de s’assurer que les modifications sont appliquées sans perturber les autres lignes du fichier ni les commentaires ajoutés par les administrateurs ou générés par le système.

En résumé, avec Augeas, la lecture et la manipulation du paramètre GRUB_CMDLINE_LINUX_DEFAULT dans /etc/default/grub se font de manière sûre et structurée. Grâce à l’arborescence de données et aux lenses, chaque paramètre devient un nœud distinct et directement accessible, permettant des ajustements précis tout en préservant l’intégrité du fichier de configuration.

Installation d’Augeas

Augeas est disponible dans les dépôts de la plupart des distributions Linux. Les commandes ci-dessous vous guideront pour l’installer selon votre environnement :

  • Sur Debian/Ubuntu Utilisez apt, le gestionnaire de paquets, pour installer Augeas :

    Terminal window
    sudo apt update
    sudo apt install augeas-tools
  • Sur CentOS/RHEL Utilisez yum ou dnf, selon votre version de CentOS ou Red Hat, pour installer les packages d’Augeas :

    Terminal window
    sudo yum install augeas

    ou pour les versions récentes :

    Terminal window
    sudo dnf install augeas

    Ce package comprend les outils de base pour manipuler les configurations, ainsi que la bibliothèque libaugeas.

  • Sur Fedora Fedora, ayant des paquets souvent plus récents, utilise dnf pour l’installation :

    Terminal window
    sudo dnf install augeas augeas-libs

    Ici aussi, augeas installe les outils principaux tandis que augeas-libs installe les bibliothèques nécessaires.

  • Sur Arch Linux

    Pour les utilisateurs d’Arch Linux, pacman permet une installation rapide :

    Terminal window
    sudo pacman -S augeas

Vérification de l’installation

Après l’installation, vérifiez qu’Augeas est bien installé et fonctionnel. Vous pouvez utiliser la commande suivante pour obtenir la version installée d’Augeas :

Terminal window
augtool --version

La commande augtool est l’outil de ligne de commande principal d’Augeas. Si cette commande ne fonctionne pas, il se peut qu’il y ait eu un problème durant l’installation ou que le chemin d’accès à Augeas ne soit pas correctement configuré.

Gestion des Configurations avec Augeas

Augeas facilite la lecture et la modification des fichiers de configuration sous Linux grâce à une interface structurée. Voici comment utiliser les commandes de base pour gérer vos configurations efficacement.

Lancer Augeas

Pour commencer, ouvrez l’outil augtool en mode superutilisateur pour avoir les droits nécessaires :

Terminal window
sudo augtool

Une fois dans augtool, vous pouvez accéder aux commandes de gestion de configuration.

Lister les lens disponibles

Il suffit de taper la commande suivante :

Terminal window
ls /augeas/load
Virtlockd/ = (none)
Libvirtd_qemu/ = (none)
Libvirt_lockd/ = (none)
Libvirtd/ = (none)
Libvirt_sanlock/ = (none)
Virtlogd/ = (none)
Dput/ = (none)
Rancid/ = (none)
Anaconda/ = (none)
Cyrus_Imapd/ = (none)
Postfix_Virtual/ = (none)
Pam/ = (none)
....

Obtenir des explications sur les Lens

Pour obtenir des explications sur les lenses disponibles, utilisez la commande suivante :

Terminal window
ls /augeas/load/Sshd
lens = @Sshd
incl[1] = /etc/ssh/sshd_config.d/*.conf
incl[2] = /etc/ssh/sshd_config

Quelques explications :

  • lens = @Sshd Cette ligne indique que la lens utilisée pour interpréter ces fichiers est Sshd. Chaque lens dans Augeas est conçue pour un type spécifique de fichier de configuration. Ici, @Sshd signifie que cette lens est destinée à manipuler les fichiers de configuration de SSH (le démon SSH).
  • incl[1] = /etc/ssh/sshd_config.d/*.conf Cette ligne montre que la lens Sshd inclut également tous les fichiers avec l’extension .conf présents dans le répertoire /etc/ssh/sshd_config.d/. Ce répertoire est souvent utilisé pour des configurations SSH supplémentaires ou des configurations personnalisées. En incluant ces fichiers, Augeas permet de lire et de modifier les paramètres contenus dans chacun de ces fichiers, pas seulement dans le fichier principal.
  • incl[2] = /etc/ssh/sshd_config Ici, la lens inclut le fichier principal de configuration SSH, /etc/ssh/sshd_config. Ce fichier contient les paramètres de configuration du serveur SSH (comme PermitRootLogin, AllowUsers, etc.) et est généralement le fichier de configuration principal pour SSH.

Grâce à cette approche, Augeas peut gérer plusieurs fichiers de configuration SSH en même temps, offrant une vue unifiée et cohérente de la configuration SSH, même si elle est répartie dans plusieurs fichiers.

Obtenir la liste des Noeuds

La commande ls permet de lister les nœuds d’un chemin dans l’arborescence de configuration.

Exemple : Pour lister le contenu de /etc/default/grub :

Terminal window
ls /files/etc/default/grub
#comment[1] = If you change this file, run 'update-grub' afterwards to update
#comment[2] = /boot/grub/grub.cfg.
#comment[3] = For full documentation of the options in this file, see:
#comment[4] = info -f grub -n 'Simple configuration'
GRUB_DEFAULT = 0
GRUB_TIMEOUT_STYLE = hidden
GRUB_TIMEOUT = 0
GRUB_DISTRIBUTOR = `( . /etc/os-release; echo ${NAME:-Ubuntu} ) 2>/dev/null || echo Ubuntu`
GRUB_CMDLINE_LINUX_DEFAULT = ""
GRUB_CMDLINE_LINUX = ""
#comment[5] = If your computer has multiple operating systems installed, then you
#comment[6] = probably want to run os-prober. However, if your computer is a host
#comment[7] = for guest OSes installed via LVM or raw disk devices, running
#comment[8] = os-prober can cause damage to those guest OSes as it mounts
#comment[9] = filesystems to look for things.
#comment[10] = GRUB_DISABLE_OS_PROBER=false
#comment[11] = Uncomment to enable BadRAM filtering, modify to suit your needs
#comment[12] = This works with Linux (no patch required) and with any kernel that obtains
#comment[13] = the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#comment[14] = GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
#comment[15] = Uncomment to disable graphical terminal
#comment[16] = GRUB_TERMINAL=console
#comment[17] = The resolution used on graphical terminal
#comment[18] = note that you can use only modes which your graphic card supports via VBE
#comment[19] = you can see them in real GRUB with the command `vbeinfo'
#comment[20] = GRUB_GFXMODE=640x480
#comment[21] = Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#comment[22] = GRUB_DISABLE_LINUX_UUID=true
#comment[23] = Uncomment to disable generation of recovery mode menu entries
#comment[24] = GRUB_DISABLE_RECOVERY="true"
#comment[25] = Uncomment to get a beep at grub start
#comment[26] = GRUB_INIT_TUNE="480 440 1"

Lire un Noeud

Pour lire un paramètre spécifique, utilisez la commande get suivie du chemin du nœud.

Exemple : Lire la valeur de GRUB_CMDLINE_LINUX_DEFAULT :

Terminal window
get /files/etc/default/grub/GRUB_CMDLINE_LINUX_DEFAULT
/files/etc/default/grub/GRUB_CMDLINE_LINUX_DEFAULT = ""

Ici on voit que la valeur retrounée est vide.

Modifier un Noeud

Avec la commande set, vous pouvez changer la valeur d’un paramètre.

Exemple : Modifier GRUB_CMDLINE_LINUX_DEFAULT pour ajouter une option :

Terminal window
set /files/etc/default/grub/GRUB_CMDLINE_LINUX_DEFAULT "quiet splash"

Ajouter un Nouveau Noeud

Si un paramètre n’existe pas, vous pouvez le créer avec set en précisant le chemin et la valeur.

Exemple : Ajouter AllowUsers dans sshd_config :

Terminal window
set /files/etc/ssh/sshd_config/AllowUsers "user1 user2"

Supprimer un nœud

Vous pouvez supprimer un nœud avec la commande rm.

Exemple : Supprimer la directive AllowUsers dans sshd_config :

Terminal window
rm /files/etc/ssh/sshd_config/AllowUsers

Renommer ou déplacer un nœud

Vous pouvez renommer ou déplacer un nœud avec la commande mv.

Exemple : Déplacer sshd_config vers /etc/ssh/sshd_config :

Terminal window
mv /files/etc/ssh/sshd_config /etc/ssh/sshd_config

Rechercher des nœuds

Vous pouvez rechercher des nœuds avec la commande match.

Exemple : Rechercher tous les nœuds qui contiennent sshd_config :

Terminal window
match /files/etc/ssh/sshd_config
/files/etc/ssh/sshd_config/AllowGroups
/files/etc/ssh/sshd_config/AllowUsers
/files/etc/ssh/sshd_config/AuthorizedKeysFile
/files/etc/ssh/sshd_config/AuthorizedPrincipalsFile
/files/etc/ssh/sshd_config/ChallengeResponseAuthentication
/files/etc/ssh/sshd_config/ClientAliveCountMax
/files/etc/ssh/sshd_config/ClientAliveInterval
/files/etc/ssh/sshd_config/Compression
/files/etc/ssh/sshd_config/GSSAPIAuthentication
/files/etc/ssh/sshd_config/GSSAPICleanupCredentials
/files/etc/ssh/sshd_config/GSSAPIDelegateCredentials
/files/etc/ssh/sshd_config/HostbasedAuthentication
/files/etc/ssh/sshd_config/HostbasedUsesNameFromPacketOnly
/files/etc/ssh/sshd_config/IgnoreRhosts
/files/etc/ssh/sshd_config/IgnoreUserKnownHosts
/files/etc/ssh/sshd_config/KbdInteractiveAuthentication
/files/etc/ssh/sshd_config/KerberosAuthentication
/files/etc/ssh/sshd_config/KerberosGetAFSToken
/files/etc/ssh/sshd_config/KerberosOrLocalPasswd
/files/etc/ssh/sshd_config/KerberosTicketCleanup
/files/etc/ssh/sshd_config/KerberosUseKuserok
/files/etc/ssh/sshd_config/LoginGraceTime
/files/etc/ssh/sshd_config/MaxAuthTries
/files/etc/ssh/sshd_config/MaxSessions
/files/etc/ssh/sshd_config/MaxStartups
/files/etc/ssh/sshd_config/PasswordAuthentication
/files/etc/ssh/sshd_config/PermitEmptyPasswords
/files/etc/ssh/sshd_config/PermitRootLogin
/files/etc/ssh/sshd_config/PermitTunnel
/files/etc/ssh/sshd_config/Port
/files/etc/ssh/sshd_config/PrintLastLog
/files/etc/ssh/sshd_config/PrintMotd
/files/etc/ssh/sshd_config/PrintMotdBanner
/files/etc/ssh/sshd_config/Protocol
/files/etc/ssh/sshd_config/PubkeyAuthentication
/files/etc/ssh/sshd_config/RhostsRSAAuthentication
/files/etc/ssh/sshd_config/RSAAuthentication
/files/etc/ssh/sshd_config/RekeyLimit
/files/etc/ssh/sshd_config/ServerKeyBits
/files/etc/ssh/sshd_config/StreamLocalBindMask
/files/etc/ssh/sshd_config/SyslogFacility
/files/etc/ssh/sshd_config/SyslogMask
/files/etc/ssh/sshd_config/TCPKeepAlive
/files/etc/ssh/sshd_config/Tunnel
/files/etc/ssh/sshd_config/TunnelDevice
/files/etc/ssh/sshd_config/UseDNS
/files/etc/ssh/sshd_config/UsePAM
/files/etc/ssh/sshd_config/UsePrivilegeSeparation
/files/etc/ssh/sshd_config/X11Forwarding

En utilisant des expressions régulières, vous pouvez rechercher des nœuds qui correspondent à un modèle particulier.

Exemple : Rechercher tous les nœuds commentés et contenant PermitRootLogin :

Terminal window
match /files/etc/ssh/sshd_config/#comment[. =~ regexp('X11Forwarding.*')]
/files/etc/ssh/sshd_config/#comment[22] = PermitRootLogin prohibit-password

Vider la valeur d’un nœud

Pour vider la valeur d’un nœud, utilisez la commande clear.

Exemple : Vider la valeur du nœud /files/etc/ssh/sshd_config/Port :

Terminal window
clear /files/etc/ssh/sshd_config/Port

Afficher une arborescence complète

Pour afficher une arborescence complète, utilisez la commande print.

Exemples :

Terminal window
print /files/etc/ssh/sshd_config/
/files/etc/ssh/sshd_config
/files/etc/ssh/sshd_config/#comment[1] = "This is the sshd server system-wide configuration file. See"
/files/etc/ssh/sshd_config/#comment[2] = "sshd_config(5) for more information."
/files/etc/ssh/sshd_config/#comment[3] = "This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
/files/etc/ssh/sshd_config/#comment[4] = "The strategy used for options in the default sshd_config shipped with"
/files/etc/ssh/sshd_config/#comment[5] = "OpenSSH is to specify options with their default value where"
/files/etc/ssh/sshd_config/#comment[6] = "possible, but leave them commented. Uncommented options override the"
/files/etc/ssh/sshd_config/#comment[7] = "default value."
/files/etc/ssh/sshd_config/Include = "/etc/ssh/sshd_config.d/*.conf"
/files/etc/ssh/sshd_config/#comment[8] = "Port 22"
/files/etc/ssh/sshd_config/#comment[9] = "AddressFamily any"
/files/etc/ssh/sshd_config/#comment[10] = "ListenAddress 0.0.0.0"
/files/etc/ssh/sshd_config/#comment[11] = "ListenAddress ::"
/files/etc/ssh/sshd_config/#comment[12] = "HostKey /etc/ssh/ssh_host_rsa_key"
/files/etc/ssh/sshd_config/#comment[13] = "HostKey /etc/ssh/ssh_host_ecdsa_key"
/files/etc/ssh/sshd_config/#comment[14] = "HostKey /etc/ssh/ssh_host_ed25519_key"
/files/etc/ssh/sshd_config/#comment[15] = "Ciphers and keying"
/files/etc/ssh/sshd_config/#comment[16] = "RekeyLimit default none"
/files/etc/ssh/sshd_config/#comment[17] = "Logging"
/files/etc/ssh/sshd_config/#comment[18] = "SyslogFacility AUTH"
/files/etc/ssh/sshd_config/#comment[19] = "LogLevel INFO"
/files/etc/ssh/sshd_config/#comment[20] = "Authentication:"
/files/etc/ssh/sshd_config/#comment[21] = "LoginGraceTime 2m"
/files/etc/ssh/sshd_config/#comment[22] = "PermitRootLogin prohibit-password"
/files/etc/ssh/sshd_config/#comment[23] = "StrictModes yes"
/files/etc/ssh/sshd_config/#comment[24] = "MaxAuthTries 6"
/files/etc/ssh/sshd_config/#comment[25] = "MaxSessions 10"
/files/etc/ssh/sshd_config/#comment[26] = "PubkeyAuthentication yes"
/files/etc/ssh/sshd_config/#comment[27] = "Expect .ssh/authorized_keys2 to be disregarded by default in future."
/files/etc/ssh/sshd_config/#comment[28] = "AuthorizedKeysFile\t.ssh/authorized_keys .ssh/authorized_keys2"
/files/etc/ssh/sshd_config/#comment[29] = "AuthorizedPrincipalsFile none"
/files/etc/ssh/sshd_config/#comment[30] = "AuthorizedKeysCommand none"
/files/etc/ssh/sshd_config/#comment[31] = "AuthorizedKeysCommandUser nobody"
/files/etc/ssh/sshd_config/#comment[32] = "For this to work you will also need host keys in /etc/ssh/ssh_known_hosts"
/files/etc/ssh/sshd_config/#comment[33] = "HostbasedAuthentication no"
/files/etc/ssh/sshd_config/#comment[34] = "Change to yes if you don't trust ~/.ssh/known_hosts for"
/files/etc/ssh/sshd_config/#comment[35] = "HostbasedAuthentication"
/files/etc/ssh/sshd_config/#comment[36] = "IgnoreUserKnownHosts no"
/files/etc/ssh/sshd_config/#comment[37] = "Don't read the user's ~/.rhosts and ~/.shosts files"
/files/etc/ssh/sshd_config/#comment[38] = "IgnoreRhosts yes"
/files/etc/ssh/sshd_config/#comment[39] = "To disable tunneled clear text passwords, change to no here!"
/files/etc/ssh/sshd_config/PasswordAuthentication = "yes"
/files/etc/ssh/sshd_config/#comment[40] = "PermitEmptyPasswords no"
/files/etc/ssh/sshd_config/#comment[41] = "Change to yes to enable challenge-response passwords (beware issues with"
/files/etc/ssh/sshd_config/#comment[42] = "some PAM modules and threads)"
/files/etc/ssh/sshd_config/KbdInteractiveAuthentication = "no"
/files/etc/ssh/sshd_config/#comment[43] = "Kerberos options"
/files/etc/ssh/sshd_config/#comment[44] = "KerberosAuthentication no"
/files/etc/ssh/sshd_config/#comment[45] = "KerberosOrLocalPasswd yes"
/files/etc/ssh/sshd_config/#comment[46] = "KerberosTicketCleanup yes"
/files/etc/ssh/sshd_config/#comment[47] = "KerberosGetAFSToken no"
/files/etc/ssh/sshd_config/#comment[48] = "GSSAPI options"
/files/etc/ssh/sshd_config/#comment[49] = "GSSAPIAuthentication no"
/files/etc/ssh/sshd_config/#comment[50] = "GSSAPICleanupCredentials yes"
/files/etc/ssh/sshd_config/#comment[51] = "GSSAPIStrictAcceptorCheck yes"
/files/etc/ssh/sshd_config/#comment[52] = "GSSAPIKeyExchange no"
/files/etc/ssh/sshd_config/#comment[53] = "Set this to 'yes' to enable PAM authentication, account processing,"
/files/etc/ssh/sshd_config/#comment[54] = "and session processing. If this is enabled, PAM authentication will"
/files/etc/ssh/sshd_config/#comment[55] = "be allowed through the KbdInteractiveAuthentication and"
/files/etc/ssh/sshd_config/#comment[56] = "PasswordAuthentication. Depending on your PAM configuration,"
/files/etc/ssh/sshd_config/#comment[57] = "PAM authentication via KbdInteractiveAuthentication may bypass"
/files/etc/ssh/sshd_config/#comment[58] = "the setting of \"PermitRootLogin prohibit-password\"."
/files/etc/ssh/sshd_config/#comment[59] = "If you just want the PAM account and session checks to run without"
/files/etc/ssh/sshd_config/#comment[60] = "PAM authentication, then enable this but set PasswordAuthentication"
/files/etc/ssh/sshd_config/#comment[61] = "and KbdInteractiveAuthentication to 'no'."
/files/etc/ssh/sshd_config/UsePAM = "yes"
/files/etc/ssh/sshd_config/#comment[62] = "AllowAgentForwarding yes"
/files/etc/ssh/sshd_config/#comment[63] = "AllowTcpForwarding yes"
/files/etc/ssh/sshd_config/#comment[64] = "GatewayPorts no"
/files/etc/ssh/sshd_config/X11Forwarding = "yes"
/files/etc/ssh/sshd_config/#comment[65] = "X11DisplayOffset 10"
/files/etc/ssh/sshd_config/#comment[66] = "X11UseLocalhost yes"
/files/etc/ssh/sshd_config/#comment[67] = "PermitTTY yes"
/files/etc/ssh/sshd_config/PrintMotd = "no"
/files/etc/ssh/sshd_config/#comment[68] = "PrintLastLog yes"
/files/etc/ssh/sshd_config/#comment[69] = "TCPKeepAlive yes"
/files/etc/ssh/sshd_config/#comment[70] = "PermitUserEnvironment no"
/files/etc/ssh/sshd_config/#comment[71] = "Compression delayed"
/files/etc/ssh/sshd_config/#comment[72] = "ClientAliveInterval 0"
/files/etc/ssh/sshd_config/#comment[73] = "ClientAliveCountMax 3"
/files/etc/ssh/sshd_config/#comment[74] = "UseDNS no"
/files/etc/ssh/sshd_config/#comment[75] = "PidFile /run/sshd.pid"
/files/etc/ssh/sshd_config/#comment[76] = "MaxStartups 10:30:100"
/files/etc/ssh/sshd_config/#comment[77] = "PermitTunnel no"
/files/etc/ssh/sshd_config/#comment[78] = "ChrootDirectory none"
/files/etc/ssh/sshd_config/#comment[79] = "VersionAddendum none"
/files/etc/ssh/sshd_config/#comment[80] = "no default banner path"
/files/etc/ssh/sshd_config/#comment[81] = "Banner none"
/files/etc/ssh/sshd_config/#comment[82] = "Allow client to pass locale environment variables"
/files/etc/ssh/sshd_config/AcceptEnv
/files/etc/ssh/sshd_config/AcceptEnv/1 = "LANG"
/files/etc/ssh/sshd_config/AcceptEnv/2 = "LC_*"
/files/etc/ssh/sshd_config/#comment[83] = "override default of no subsystems"
/files/etc/ssh/sshd_config/Subsystem
/files/etc/ssh/sshd_config/Subsystem/sftp = "/usr/lib/openssh/sftp-server"
/files/etc/ssh/sshd_config/#comment[84] = "Example of overriding settings on a per-user basis"
/files/etc/ssh/sshd_config/#comment[85] = "Match User anoncvs"
/files/etc/ssh/sshd_config/#comment[86] = "X11Forwarding no"
/files/etc/ssh/sshd_config/#comment[87] = "AllowTcpForwarding no"
/files/etc/ssh/sshd_config/#comment[88] = "PermitTTY no"
/files/etc/ssh/sshd_config/#comment[89] = "ForceCommand cvs server"
/files/etc/ssh/sshd_config/Port

Sauvegarder les Modifications

Pour enregistrer les changements dans le fichier de configuration d’origine, utilisez simplement la commande :

Terminal window
save

Quitter Augeas

Pour sortir de augtool, utilisez la commande :

Terminal window
quit

Où Trouver des Lenses ?

Avant de créer une lens, vérifiez si une lens similaire existe déjà. Voici où chercher :

  • Répertoire par défaut : Consultez /usr/share/augeas/lenses pour voir les lenses fournies avec Augeas. Ces lenses couvrent de nombreux fichiers de configuration courants.
  • La Stock Lenses : Consultez la Stock Lenses.
  • Dépôt officiel Augeas sur GitHub : Le projet Augeas est open source, et son dépôt officiel contient de nombreuses lenses contribuant aux versions actuelles d’Augeas. GitHub Augeas
  • GitHub et GitLab : Recherchez des lenses personnalisées publiées par d’autres utilisateurs. Essayez des mots-clés comme “Augeas lens” suivis du nom de l’application ou du fichier de configuration que vous ciblez.

Conclusion

Vous l’aurez compris, Augeas est un super Outil, il existe même une Collection Ansible, malheureusement pas officielle.

Resssources

Pour approfondir vos connaissances et découvrir d’autres possibilités avec Augeas, voici quelques ressources utiles :

  • Wiki officiel Augeas : Une mine d’informations sur les fonctionnalités d’Augeas, la création de lenses, les cas d’utilisation, et des astuces pour la manipulation de configurations systèmes.
  • Dépôt GitHub Augeas : Retrouvez les dernières mises à jour et contribuez à l’outil open source.