« Savoir ouvrir un éditeur suffit pour modifier une configuration système. »
L’opération complète inclut sauvegarde, droits, modification minimale, diff, validation syntaxique, remplacement contrôlé et rollback.
01Prépare une copie de travail
export LAB="/tmp/soria-linux-processes-$USER"
cp -a "$LAB/config/soria-agent.conf" "$LAB/config/soria-agent.conf.bak"
cp -a "$LAB/config/soria-agent.conf" "$LAB/config/soria-agent.conf.work"
stat -c '%a %U:%G %n' "$LAB/config/"soria-agent.conf*
Travaille sur la copie .work. Le fichier .bak fournit un rollback immédiat.
02Utilise vi ou vim
vi "$LAB/config/soria-agent.conf.work"
iEsc/mot:w:q:q!Modifie interval_seconds de 10 à 30 et log_level de info à warning.
03Utilise nano comme alternative
nano "$LAB/config/soria-agent.conf.work"
Dans nano, Ctrl+O enregistre, Ctrl+W recherche et Ctrl+X quitte. Les raccourcis affichés en bas utilisent le symbole ^ pour Ctrl.
04Compare avant de remplacer
diff -u "$LAB/config/soria-agent.conf.bak" "$LAB/config/soria-agent.conf.work" || true
grep -E '^(agent_name|interval_seconds|log_level|output_file)=' "$LAB/config/soria-agent.conf.work"
05Valide la structure
awk -F= '
/^[[:space:]]*#/ || /^[[:space:]]*$/ { next }
NF != 2 { bad=1; print "invalid line:", NR, $0 }
END { exit bad }
' "$LAB/config/soria-agent.conf.work"
grep -qx 'interval_seconds=30' "$LAB/config/soria-agent.conf.work"
grep -qx 'log_level=warning' "$LAB/config/soria-agent.conf.work"
Dans un vrai service, remplace cette validation générique par la commande native : par exemple sshd -t, nginx -t ou visudo -c.
06Remplace et vérifie
install -m 0644 "$LAB/config/soria-agent.conf.work" "$LAB/config/soria-agent.conf.new"
mv "$LAB/config/soria-agent.conf.new" "$LAB/config/soria-agent.conf"
diff -u "$LAB/config/soria-agent.conf.expected" "$LAB/config/soria-agent.conf"
Créer un nouveau fichier puis le renommer limite la fenêtre où la destination pourrait être partiellement écrite.
07Teste le rollback
cp -a "$LAB/config/soria-agent.conf.bak" "$LAB/config/soria-agent.conf"
diff -u "$LAB/config/soria-agent.conf.bak" "$LAB/config/soria-agent.conf"
08Situe Emacs
Emacs est un environnement extensible disposant d’un éditeur puissant, d’un gestionnaire de paquets et de nombreux modes. Il n’est pas requis pour ce parcours ; l’objectif opérationnel est de pouvoir intervenir avec vi/vim, presque toujours disponible, et nano lorsqu’il est installé.
Modifie une configuration réelle en sécurité
Choisis un fichier non critique dans une VM de laboratoire. Sauvegarde métadonnées et contenu, effectue une seule modification, montre le diff, exécute le validateur natif, applique, vérifie puis restaure la version initiale.
09Nettoie le laboratoire
./module3-processes-software-lab.sh stop
./module3-processes-software-lab.sh reset
✓Ce que tu retiens
L’éditeur n’est qu’un outil. La compétence d’administration consiste à préserver l’original, limiter le changement, valider, appliquer de manière contrôlée et savoir revenir en arrière.