[{"content":"","date":"25 mai 2026","externalUrl":null,"permalink":"/archives/","section":"Archives","summary":"","title":"Archives","type":"archives"},{"content":"","date":"24 mai 2026","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":"","date":"24 mai 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"24 mai 2026","externalUrl":null,"permalink":"/tags/toolbox/","section":"Tags","summary":"","title":"Toolbox","type":"tags"},{"content":"","date":"24 mai 2026","externalUrl":null,"permalink":"/tags/vim/","section":"Tags","summary":"","title":"Vim","type":"tags"},{"content":" Note Pour voir immédiatement les principales commandes de survie, c’est par là.\nVim est un éditeur en mode texte extrêmement populaire dans le monde du libre en raison de sa puissance et de sa polyvalence. Mais son utilisation peut dérouter le néophyte puisqu’elle est contre-intuitive par rapport aux autres éditeurs de texte. C’est ce qui explique que, si certains ne jurent que par lui une fois qu’ils ont suivi la courbe d’apprentissage permettant d’en maîtriser la puissance, d’autres conservent un rapport ambigu avec « le machin ».\nIl demeure que connaître quelques (petites) notions sur Vim est, tôt ou tard, indispensable si on fait de la gestion informatique domestique, ne serait-ce que parce que nombre de systèmes embarqués ne proposent que Vim comme interface d’édition lorsqu\u0026rsquo;on s\u0026rsquo;y connecte en SSH pour modifier des fichiers de configuration système. C’est le cas de mon NAS Synology ou de mon routeur UCG-Ultra.\nLes 5 commandes pour survivre dans un univers inconnu # Quand vous ouvrez Vim, que vous êtes perdus parce que vous ne savez pas quoi faire, les commandes suivantes vous permettent d’être immédiatement opérationnel :\ni : Pour commencer à écrire ou modifier du texte (passage en mode Insertion). Échap ou ESC : Pour arrêter le travail d’écriture (retour au mode Commande). :w : Pour sauvegarder votre travail. :q : Pour quitter (si tout est sauvegardé). :q! : Pour quitter en force sans sauvegarder. Note Les commandes qui commencent par \u0026ldquo;:\u0026rdquo; s\u0026rsquo;exécutent en pressant Entrée.\nLes commandes quand vous vous dites que maintenant, vous n’avez plus peur de rien # Une fois le choc initial passé, manipuler un fichier de configuration sera facilité si vous disposez de quelques outils supplémentaires. Voici le package « confort » pour ne pas y passer des heures.\nNote Sauf indication contraire, toutes les combinaisons suivantes s’effectuent en mode Commande.\nPour vous déplacer # Les flèches directionnelles (← ↑ → ↓) et les touches Début, Fin, Page Préc. et Page Suiv. fonctionnent normalement (en mode Commande comme en mode Insertion). En mode Commande vous pouvez aussi utiliser les combinaisons suivantes qui vous permettent de ne pas éloigner les doigts de la zone d’écriture :\nh / j / k / l : Gauche / Bas / Haut / Droite. gg : Aller directement au tout début du fichier. G : Aller tout à la fin du fichier. Pour éditer # Pour effacer ou corriger proprement, utilisez les touches suivantes :\nRetour arrière (Backspace) : Efface le caractère avant le curseur (uniquement en mode Insertion). Suppr (Delete) : Efface le caractère après le curseur (en mode Commande et Insertion). x : Supprime le caractère sous le curseur (l\u0026rsquo;équivalent de la touche Suppr). dd : Supprime (coupe) la ligne entière où se trouve le curseur. u : Annule la dernière action. Ctrl + r : Rétablit l\u0026rsquo;action annulée. Pour rechercher # Pour rechercher un mot, suivez les étapes suivantes :\nTapez / puis la chaîne à rechercher (par exemple /PasswordAuthentication). Tapez Entrée pour lancer la recherche. Vim placera le curseur sur la première occurrence trouvée. Tapez n pour passer à l’occurrence suivante (ou N pour revenir à la précédente). Pour copier-coller # Dans Vim, le copier-coller est un concept complexe sur lequel on pourrait écrire une thèse de doctorat. Mais cette procédure vous permettra de toujours vous en sortir :\nPlacez le curseur au début ou à la fin du texte à copier ou couper et appuyez sur v. Amenez le curseur à l’extrémité inverse du texte à copier/couper (à la fin ou au début, respectivement). Ensuite, si vous voulez : copier : appuyez sur y couper : appuyez sur d Amenez le curseur là où vous souhaitez coller et appuyez sur : p. Notez que le texte sera collé après le curseur. Pour copier-coller en trichant # Une situation régulière qui se produira est que vous souhaitez coller dans Vim un texte copié en dehors de Vim (typiquement, une ligne de code ou de configuration trouvée dans un howto ou un forum, que vous souhaitez coller dans une instance de vim, elle-même ouverte dans un terminal graphique, par exemple xfce4-terminal). Dans ce cas, vous pouvez utiliser la fonction « copier » du terminal :\nEn dehors de Vim, copiez le texte qui vous intéresse via la combinaison standard Ctrl + c. Dans Vim, placez le curseur là où vous souhaitez coller et passez en mode Insertion (i). Appuyez sur Ctrl + Maj + v (valable pour xfce4-terminal, Gnome Terminal, Konsole… À vérifier pour le vôtre). Astuce Si un texte collé de cette manière se décale étrangement « en escalier », tapez u (pour annuler), puis la commande :set paste. Collez votre texte, puis tapez :set nopaste une fois terminé.\n","date":"24 mai 2026","externalUrl":null,"permalink":"/toolbox/vim-survival-guide/","section":"Boîte à outils","summary":"","title":"Vim : petit guide de survie","type":"toolbox"},{"content":" Shell # Le shell est l’interface textuelle qui permet de communiquer avec le système d’exploitation d’une machine. Contrairement à une interface graphique (où l’on clique sur des icônes), le shell attend que l’utilisateur saisisse des commandes au clavier pour les exécuter.\nOn utilise généralement le shell à travers un terminal : une fenêtre permettant d’afficher le shell et d’interagir avec lui, comme l’illustre l’exemple ci-dessous :\nSSH (clé) # Une clé SSH est un mécanisme d’authentification permettant de se connecter à un serveur SSH sans que celui-ci ne demande de mot de passe. Elle fonctionne avec une paire de clés :\nune clé privée, conservée secrètement sur votre machine une clé publique, copiée sur le serveur distant Lors de la connexion, le serveur vérifie que vous possédez bien la clé privée correspondant à la clé publique enregistrée.\nSSH (serveur) # Un serveur SSH est un programme qui tourne en arrière-plan sur une machine distante (serveur, Raspberry Pi, NAS…) et qui permet à un utilisateur de s’y connecter afin d’exécuter des commandes sur cette machine. Typiquement, une connexion SSH ouvre un shell distant permettant de piloter le système en ligne de commande.\n","date":"23 mai 2026","externalUrl":null,"permalink":"/toolbox/glossary/","section":"Boîte à outils","summary":"","title":"Glossaire","type":"toolbox"},{"content":"","date":"10 mai 2026","externalUrl":null,"permalink":"/tags/backup/","section":"Tags","summary":"","title":"Backup","type":"tags"},{"content":"","date":"10 mai 2026","externalUrl":null,"permalink":"/tags/restic/","section":"Tags","summary":"","title":"Restic","type":"tags"},{"content":" Note Article en cours d’élaboration.\nLogiciels utilisés :\nClient : Windows 11 Famille, PowerShell 7.6, OpenSSH 9.5p2 Outils : Restic 0.18.1, Rclone 1.66.0 (TODO : recheck) Serveur : Synology DS213j (DSM v7.1.1) Ma femme utilise un ordinateur portable sous Windows. Pour elle, l’utilisation de cet outil doit se limiter au strict minimum (elle préfère, de très loin, son smartphone). Autant dire que mes encouragements à mettre en place une procédure de sauvegarde automatique pour éviter de perdre toutes ses données n’ont jamais donné lieu qu’à des… « Mouais, je verrai ça un jour. » À savoir que pendant plusieurs années, la seule sauvegarde qu’elle traînait était une vieille clé USB, solution incertaine au possible.\nDésespéré, j’ai fini par entreprendre cette tâche par moi-même, en passant par des solutions diverses qui ont suivi ma propre courbe d’apprentissage dans le domaine. D’abord, sauvegarde régulière sur un disque dur externe. Ensuite, j’ai eu l’idée de tenter de gérer la situation via la solution OneDrive de Microsoft. On ne m’y reprendra plus. Finalement, je suis passé à un logiciel (Perfect Backup) permettant des sauvegardes incrémentales et automatiques. Mais un bug sur une sauvegarde m’en a découragé.\nJ’ai alors décidé d’aller vers des solutions davantage orientées open source, avec l’idée d’avoir quelque chose de solide et (surtout) automatisable pour pouvoir (enfin) cesser d’y penser. Je vous présente ici les solutions que j’ai construites.\nStratégie de sauvegarde # Tout d’abord, on va rappeler une règle basique de la sauvegarde personnelle. Idéalement, un système de backup sérieux doit suivre la règle du « 3-2-1 » : pour être en sécurité, vos données doivent exister au moins en trois copies, sur au moins deux supports différents, dont l’un au moins se trouve hors site. Pour les données du laptop, j’ai opté pour une double sauvegarde incrémentale : une sur notre NAS familial (un Synology DS213j) et une sur Google Drive où ma femme — qu’on appellera désormais ici « Julie » — dispose d’un espace de stockage de 100 Go.\nPour les logiciels, j’ai longuement exploré les options disponibles. Exit les gros GUI gourmands en ressources. Étant allergique au clavier non-bépo de Julie et par souci d’efficacité, je voulais un outil que je puisse administrer à distance depuis mon poste, via une connexion SSH. J’aurais pu utiliser Borg, outil réputé et fiable, comme je le fais pour la plupart de mes sauvegardes personnelles, mais ce n’était pas possible sur Google Drive (ou tout autre hébergeur de stockage mainstream que Julie pourrait utiliser). J’ai alors opté pour les solutions suivantes :\nRestic : un outil en ligne de commande open source à la réputation solide. Il se prête facilement à une automatisation via des scripts PowerShell et optimise le stockage grâce à la déduplication de données qui permet des sauvegardes incrémentales. Il intègre également des tests de vérification d’intégrité et permet des restaurations partielles ou totales. OpenSSH : ce protocole a été préféré à SMB pour sa parfaite intégration dans mon architecture existante. L\u0026rsquo;utilisation de SSH présente de nombreux avantages pour la gestion des sauvegardes : absence de montages réseau persistants, suppression des conflits d\u0026rsquo;identifiants Windows, scripts simplifiés, gestion des erreurs plus lisible et comportement natif de type Linux. Rclone : ce couteau suisse du stockage servira de passerelle à Restic pour lui permettre d\u0026rsquo;accéder à Google Drive. Prérequis # Les prérequis suivants sont nécessaires pour mener à bien la procédure :\nSur le NAS : Création d’un compte pour Julie (TODO : lien interne) Activation et configuration du service SSH (TODO : lien interne) Sur le laptop : Installation de PowerShell 7, OpenSSH et l’éditeur Micro (TODO : lien interne) Optionnel : Activation du démon sshd sur le laptop de Julie et configuration d’un accès SSH pour administrer la machine à distance depuis son poste fixe Mise en place d’un montage sshfs pour éditer les fichiers du laptop directement depuis le poste de travail avec son éditeur favori (Vim, par exemple) Installation de Restic # Pour installer Restic sur Windows, on trouve la dernière version sur la page « Releases » du dépôt GitHub. Dans la dernière release, il faut repérer la section « Assets » et télécharger le fichier nommé restic_\u0026lt;version\u0026gt;_windows_amd64.zip.\nImportant Pour la suite du document, il faut adapter les noms d’utilisateur, chemins et versions à votre configuration.\nUne fois Restic téléchargé, voilà la marche à suivre :\nOn ouvre un terminal PowerShell (ou un explorateur de fichiers si on préfère) pour faire les manipulations nécessaires. On crée un dossier C:\\Tools\\restic et on s’y rend : mkdir C:\\Tools\\restic cd C:\\Tools\\restic On déplace l’archive téléchargée vers ce dossier puis on extrait le fichier exécutable de l’archive : Move-Item -Path \u0026#34;C:\\Users\\julie\\Downloads\\restic_0.18.1_windows_amd64.zip\u0026#34; ` -Destination . Expand-Archive -Path \u0026#34;.\\restic_0.18.1_windows_amd64.zip\u0026#34; ` -DestinationPath . On renomme ce fichier en restic.exe, ce qui sera utile pour la phase d’automatisation : Rename-Item -Path \u0026#34;.\\restic_0.18.1_windows_amd64.exe\u0026#34; -NewName \u0026#34;restic.exe\u0026#34; Accès SSH au NAS # Restic communiquera avec le NAS en passant par une connexion SSH, il faut donc que l’utilisateur Julie ait un accès autorisé. Par ailleurs, il faut que cet accès puisse se faire via une clé SSH, ce qui est obligatoire pour automatiser la sauvegarde.\nCréation d’une clé SSH # Pour créer une clé SSH sur le laptop, on ouvre un terminal PowerShell depuis la session de Julie, on s’assure qu’on est dans le bon dossier (C:\\Users\\julie) et on génère la clé :\ncd $HOME ssh-keygen -t ed25519 ` -f .ssh\\id_ed25519 ` -N \u0026#34;\u0026#34; ` -C \u0026#34;${env:USERNAME}@${env:COMPUTERNAME}_$(Get-Date -Format yyyy-MM-dd)\u0026#34; On vérifie ensuite que les fichiers ont bien été créés :\nls .ssh Dans la liste affichée, devraient figurer deux fichiers comme ceux-là :\n-a--- 22/05/2026 10:23 419 id_ed25519 -a--- 22/05/2026 10:23 112 id_ed25519.pub Ces deux fichiers fonctionnent ensemble :\nid_ed25519 est la clé privée, qui ne doit jamais sortir de ce dossier. id_ed25519.pub est la clé publique, que l’on installera sur le NAS. On peut visualiser la clé publique à l’aide d’une simple commande :\ncat .ssh\\id_ed25519.pub Elle doit ressembler à :\nssh-ed25519 AAAARNNzaC1lZDI1OTE5AAAAIPGDQJzIiLkq69g6lb+gpsaWL6VOHtqQbUYaePuTDCJG Julie@laptop_2026-05-22 Installation de la clé publique sur le NAS # On part ici du principe que Julie a un compte sans droits administrateur sur le NAS où on veut installer la clé. Si elle avait un compte administrateur, la procédure serait un peu plus simple, mais on préfère ici envisager le cas le plus difficile (et le plus sécurisé). Comme on dit, qui peut le plus peut le moins.\nNormalement, si on a installé proprement notre NAS et qu’on a déjà activé le service SSH, on dispose d’un autre utilisateur qui a déjà un accès SSH opérationnel et qui a les droits d’administration (on va l’appeler « nico »). C’est lui qui va bosser pour ouvrir l’accès à Julie.\nPour les curieux : suis-je vraiment obligé de passer par un autre utilisateur ? C’est relou… Techniquement non. Mais :\nJe pars du principe que le démon sshd d’un serveur NAS configuré de manière sécurisée interdit, de préférence, la connexion par mot de passe (PasswordAuthentication no dans /etc/ssh/sshd_config). Dans ce cas, il est inévitable d’utiliser un autre utilisateur ayant déjà un accès, sauf à réactiver temporairement l’authentification par mot de passe. En plus de cela, par défaut, sur DSM 7.1.1, un utilisateur sans droits d’administration n’a pas accès à un shell, ce qui lui interdit d’ouvrir une session SSH interactive. C’est pourquoi de nombreux tutoriels sur Synology indiquent d’attribuer les droits d’administration à l’utilisateur concerné. Personnellement, je ne souhaite pas donner ces droits à tous les membres de la famille. Une autre solution est alors de modifier manuellement le fichier /etc/passwd et d’attribuer un shell à Julie. Il faut donc obligatoirement qu’un autre utilisateur (administrateur) se connecte pour modifier ce fichier au préalable. Bien sûr, si Julie a un compte administrateur et si le serveur SSH autorise la connexion avec mot de passe, elle peut faire elle-même les manipulations nécessaires. Elle n’aura alors pas besoin de toucher au fichier /etc/passwd. Il faut toutefois savoir qu’elle ne pourra pas utiliser ssh-copy-id, qui est l’utilitaire normalement prévu pour copier une clé SSH, parce que la version d’OpenSSH utilisée par défaut sur Windows n’intègre pas cet outil. Il lui faudra se connecter par mot de passe et créer le fichier authorized_keys (voir ci-dessous). Pour copier la clé sur le NAS, on suit les étapes suivantes :\nOn se connecte au serveur (ici : nas.lan) : $ ssh nico@nas.lan On crée un dossier .ssh dans le répertoire personnel de Julie, en considérant que sur le NAS, les dossiers home se trouvent dans /var/services/homes/\u0026lt;user\u0026gt; : $ cd /var/services/homes/Julie/ $ sudo mkdir -p .ssh Avec Vim, on crée (ou ouvre, s’il existe déjà) le fichier authorized_keys : $ sudo vim .ssh/authorized_keys On colle dans le fichier la clé que l’on avait affichée à la fin de la section Création d’une clé. On sauve, on sort. Il reste alors à ajuster le propriétaire (avec chown) et les permissions (avec chmod) du dossier et du fichier (pour des explications sur la signification de ces commandes, voir ici (TODO : lien interne)) : $ sudo chown -R Julie:users .ssh $ sudo chmod 700 .ssh $ sudo chmod 600 .ssh/authorized_keys Modification de /etc/passwd # Par défaut, sur certains NAS Synology (mon DS213j, en tout cas), le fichier /etc/passwd interdit à un utilisateur non administrateur d’avoir accès à un shell. Il faut donc modifier ce fichier.\nAttention Avant de modifier ce fichier, il vaut mieux en faire une copie de sécurité comme indiqué.\n$ sudo cp -a /etc/passwd /etc/passwd.bkp $ sudo vim /etc/passwd Une fois ce fichier ouvert, on modifie la ligne correspondant à Julie. La ligne ciblée doit ressembler à ceci :\nJulie:x:1027:100::/var/services/homes/Julie:/usr/bin/nologin L’ensemble du champ après le dernier deux-point (:) correspond au shell attribué à Julie. Il faut modifier cette ligne (uniquement !), en remplaçant /usr/bin/nologin (ou /sbin/nologin, ou /bin/false…) par /bin/sh, pour obtenir le résultat suivant :\nJulie:x:1027:100::/var/services/homes/Julie:/bin/sh Il faut faire bien attention à ne rien modifier d’autre dans le fichier. On sauve, on sort.\nTest de l’accès SSH # Une fois toutes les étapes terminées, on teste l’accès depuis le laptop de Julie, via PowerShell :\nssh Julie@nas.lan Si ça passe, on est bon. On peut initialiser le dépôt restic !\nInitialisation du dépôt # Il nous faut maintenant initialiser un dépôt Restic sur le NAS afin d’y stocker nos sauvegardes.\nDepuis notre terminal PowerShell, on commence par créer le dossier qui servira pour le dépôt : ssh Julie@nas.lan \u0026#39;mkdir -p ~/restic-backup\u0026#39; Pour pouvoir agir sur un dépôt, la commande restic a besoin de deux choses : l’adresse du dépôt et un mot de passe. Plutôt que fournir ces deux informations à chaque utilisation de restic, on peut définir deux variables d’environnement : RESTIC_REPOSITORY pour le dépôt, RESTIC_PASSWORD pour le mot de passe. Le plus pratique est de définir ces deux variables dans un script PowerShell qu’il nous suffira d’exécuter une seule fois au début d’une session pour pouvoir utiliser ensuite restic sans nous en soucier. Ce script servira ensuite aussi lors de la phase d’automatisation. On crée donc un script : cd $HOME micro .restic_env.ps1 Dans ce fichier, on copie le code suivant, en veillant à renseigner correctement l’identifiant et l’adresse du serveur, et en choisissant un mot de passe. $env:RESTIC_REPOSITORY=\u0026#34;sftp:Julie@nas.lan:/home/restic-backup\u0026#34; $env:RESTIC_PASSWORD=\u0026#34;mot-de-passe-au-choix\u0026#34; Pour les curieux : pourquoi /home/restic-backup au lieu de /home/Julie/restic-backup ? Restic accède au dépôt via le protocole SFTP. Sur DSM 7.1.1, le serveur SFTP expose le répertoire personnel de l\u0026rsquo;utilisateur sous la forme d\u0026rsquo;un dossier virtuel /home. Le chemin /home/restic-backup correspond donc au dossier restic-backup situé dans le répertoire personnel de Julie.\nImportant Le mot de passe du dépôt Restic est indispensable pour accéder aux sauvegardes. Si vous le perdez, les données du dépôt deviendront irrécupérables.\nOn peut maintenant initialiser le dépôt, en chargeant d’abord notre script : . $HOME\\.restic_env.ps1 restic init Première sauvegarde # Automatisation des backups # Surveillance # ","date":"10 mai 2026","externalUrl":null,"permalink":"/system/laptop-backup-restic/","section":"Administration Système","summary":"","title":"Restic : comment j’automatise la sauvegarde du laptop de Madame","type":"system"},{"content":"","date":"10 mai 2026","externalUrl":null,"permalink":"/tags/system/","section":"Tags","summary":"","title":"System","type":"tags"},{"content":"","date":"10 mai 2026","externalUrl":null,"permalink":"/tags/windows/","section":"Tags","summary":"","title":"Windows","type":"tags"},{"content":" Build and Forget. HomeStackLab est un laboratoire technique personnel consacré à la construction\nd’une infrastructure numérique familiale fiable, maintenable et pensée pour durer.\nIci, je documente mes solutions utilisées au quotidien :\nsystèmes, réseau, services et domotique. ","externalUrl":null,"permalink":"/","section":"","summary":"","title":"","type":"page"},{"content":"","externalUrl":null,"permalink":"/system/","section":"Administration Système","summary":"","title":"Administration Système","type":"system"},{"content":"","externalUrl":null,"permalink":"/toolbox/","section":"Boîte à outils","summary":"","title":"Boîte à outils","type":"toolbox"},{"content":"","externalUrl":null,"permalink":"/services/","section":"Informatique Familiale","summary":"","title":"Informatique Familiale","type":"services"},{"content":"","externalUrl":null,"permalink":"/smarthome/","section":"Maison Connectée","summary":"","title":"Maison Connectée","type":"smarthome"},{"content":"","externalUrl":null,"permalink":"/network/","section":"Réseau Domestique","summary":"","title":"Réseau Domestique","type":"network"}]