Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 16 février 2026Flux principal

Systemd-analyze - L'outil indispensable pour accélérer son boot Linux

Par : Korben
16 février 2026 à 10:46

Vous trouvez que votre Linux met 3 plombes à démarrer et vous regardez l'écran de boot défiler en vous demandant ce qui peut bien prendre autant de temps ?

Hé bien bonne nouvelle los amigos del manchos, si vous utilisez une distribution basée sur systemd (comme Debian, Ubuntu, Fedora, Arch, et compagnie), il existe un outil natif déjà installé qui permet de diagnostiquer tout ça : systemd-analyze

Ce truc c'est un peu le médecin légiste de votre démarrage système. Il dissèque chaque étape, identifie les unités qui traînent la patte, et vous permet de comprendre où part votre précieux temps. Pour ceux qui débarquent, systemd est le système d'initialisation adopté par la plupart des distributions modernes, et il permet justement de lancer plein de trucs en parallèle pour gagner du temps.

Pour commencer, la commande de base c'est tout simplement :

systemd-analyze time

Elle vous sort un récapitulatif du temps passé dans chaque phase, généralement le kernel, l'initrd (le RAM disk initial), et l'espace utilisateur. Selon votre configuration, vous pourriez aussi voir passer le firmware ou le bootloader. Ça donne un truc du genre "Startup finished in 2.5s (kernel) + 19s (initrd) + 47s (userspace)". Déjà là, vous savez si le problème vient de votre noyau ou de vos services.

Mais le truc vraiment cool pour fouiller un peu plus dans le détail, c'est :

systemd-analyze blame

Cette commande vous balance la liste des unités systemd, triées par le temps qu'elles ont mis à s'initialiser. C'est un peu comme un classement des cancres de la Ve République. Vous voyez direct qui sont les boulets qui ralentissent tout le monde. Genre ce service réseau qui attend 20 secondes une connexion qui n'arrivera jamais, ou ce truc de logs qui prend son temps pour se réveiller.

Attention quand même, y'a un petit piège car un service qui met 10 secondes à démarrer ne signifie pas forcément que votre boot est rallongé de 10 secondes. Pourquoi me diriez-vous ? Hé bien parce que systemd lance plein de trucs en parallèle. Un service peut donc prendre son temps tranquille pendant que d'autres bossent en même temps sans bloquer personne.

Pour vraiment piger ce qui coince sur le chemin critique, lancez plutôt :

systemd-analyze critical-chain

Ça, c'est le top car ça vous montre la chaîne critique, c'est-à-dire la séquence exacte d'événements qui détermine vraiment votre temps de démarrage final. Vous voyez exactement quelles unités sont sur le chemin et lesquelles attendent les autres. Le temps après le "@" indique quand l'unité est devenue active, et le temps après le "+" montre combien de temps elle a pris pour démarrer. C'est bien plus fiable que blame pour identifier les vrais goulots d'étranglement.

Et si vous êtes du genre visuel, y'a même :

systemd-analyze plot > boot.svg

Et avec ça, hop, ça génèrera un magnifique graphique SVG qui représentera la chronologie de votre séquence de boot. Vous pourrez ensuite l'ouvrir dans votre navigateur et voir en un coup d'oeil ce qui démarre quand et combien de temps ça dure. C'est super pratique pour épater la galerie ou juste visualiser l'ordre de lancement.

Maintenant, une fois que vous avez identifié les coupables, comment on fait pour accélérer tout ça ?

Déjà, vous pouvez désactiver les services dont vous n'avez pas besoin avec :

sudo systemctl disable nom-du-service

Gardez en tête que disable supprime seulement le lancement automatique au boot, mais n'empêche pas une activation indirecte via une dépendance ou un socket. Si vous voulez vraiment qu'un service ne démarre plus jamais, utilisez mask. Et surtout, ne désactivez pas n'importe quoi comme un bourrin, hein ! Je vous connais ! Non, non, avant de toucher à un service, vérifiez d'abord ce qui en dépend :

systemctl list-dependencies nom-du-service

Car si vous cassez un truc important, votre système risque de ne plus démarrer correctement. Donc si vous n'êtes pas sûr, gardez vos mimines dans vos poches. D'ailleurs, si vous bidouillez vos fichiers d'unité (comme pour automatiser Shiori par exemple), sachez que vous pouvez aussi les vérifier pour débusquer les erreurs avec :

systemd-analyze verify /chemin/vers/unite.service

C'est super pratique pour éviter les mauvaises surprises au prochain redémarrage. Voilà et si vous cherchez d'autres astuces pour optimiser votre machine Linux , n'hésitez pas à jeter un oeil à mon article sur TLP.

Ah j'oubliais, y'a aussi la commande systemd-analyze security qui permet d'analyser le niveau d'exposition sécurité de vos services. Elle attribue un score heuristique d'exposition basé sur les options de durcissement (hardening) actives. Plus le score est bas, mieux le service est protégé contre d'éventuelles failles. C'est donc un excellent point de départ pour identifier les services qui mériteraient un peu plus de love côté isolation.

Bref, cet analyseur de démarrage c'est vraiment l'outil indispensable pour qui veut comprendre et optimiser son boot Linux. C'est natif, c'est puissant, et ça vous évite de passer des heures à chercher pourquoi votre machine met autant de temps que vous à se réveiller le matin ^^.

À partir d’avant-hierFlux principal

Wake - L'outil qui donne de la mémoire à Claude Code

Par : Korben
24 janvier 2026 à 09:11

Vous utilisez Claude Code et vous passez votre temps à copier-coller vos logs de terminal pour lui donner du contexte ? Du genre, vous lancez une commande, ça se plante comme une merde, et là faut expliquer à l'IA ce qui s'est passé en faisant des screenshots ou du copier-coller à la main.

C'est vite relou mais heureusement, c'est totalement le problème que résout Wake , un petit outil en Rust qui enregistre automatiquement tout ce qui se passe dans votre terminal et le donne en offrande sacrée à Claude Code via le protocole MCP. Du coup, plus besoin de jouer les secrétaires IA, puisque Claudo Code, euuh Claude Code peut interroger votre historique de commandes avec les sorties et le contexte git quand il en a besoin.

Au début, vous lancez wake shell et hop, vous êtes dans une session enregistrée. Ensuite toutes vos commandes, leurs sorties, et même les infos de votre repo git, tout est capturé et stocké localement dans une base SQLite bien planquée dans ~/.wake/. Puis quand vous posez une question à Claude Code, il peut aller piocher dans cet historique pour comprendre ce que vous avez fait.

L'installation se fait en une seule ligne (allez lire le script comme d'hab, hein) :

curl -sSf https://raw.githubusercontent.com/joemckenney/wake/main/install.sh | sh

Après faut ajouter l'init dans votre .zshrc ou .bashrc :

eval "$(wake init zsh)"

Et pour brancher ça sur Claude Code :

claude mcp add --transport stdio --scope user wake-mcp -- wake-mcp

Côté commandes, y'a wake log pour voir l'historique récent, wake search "machin truc" pour fouiller dedans, wake dump pour exporter en markdown et wake annotate "note" si vous voulez ajouter des petites marqueurs pour vous y retrouver plus tard. Le stockage reste en local sur votre machine, et les sorties sont limitées à 1 Mo par commande pour éviter de saturer la base.

Donc si vous êtes le genre de gaillard.e sans peur à laisser Claude piloter votre terminal ou à utiliser plusieurs agents en parallèle , c'est le genre d'outil qui peut vraiment vous faire gagner du temps car là où avant fallait tout expliquer à l'IA, maintenant elle voit directement ce que vous avez fait et pourquoi ça a merdé.

Le projet vient de sortir en v0.1.0, donc c'est encore tout frais. Ça supporte zsh et bash pour le moment. Par contre, fish c'est pas encore au programme.

Ghostty Config - Configurez Ghostty facilement en GUI

Par : Korben
24 janvier 2026 à 08:09

Vous passez vos journées dans un terminal et vous avez craqué pour Ghostty ? Sauf que voilà... éditer un fichier de config à la main, c'est un peu comme remplir et payer sa déclaration d'impôts. On sait qu'on peut le faire, mais on préférerait que quelqu'un d'autre s'en charge.

Du coup, un développeur de la communauté a eu la bonne idée de créer Ghostty Config, une interface web qui permet de configurer son terminal sans toucher à un seul fichier texte. Vous sélectionnez vos options dans des menus déroulants, vous cochez des cases, et hop, ça génère la config toute seule.

Le truc cool c'est que l'outil couvre pas mal de terrain : les polices (avec un playground pour tester en direct), les couleurs, les raccourcis clavier, les curseurs, la transparence... Et des presets communautaires sont prévus pour ceux qui ont la flemme de tout paramétrer à la main.

Une fois que vous êtes content du résultat, vous exportez le fichier de config et vous le collez dans votre dossier Ghostty. L'inverse marche aussi, vous pouvez importer votre config existante pour la modifier visuellement. Pratique si vous avez déjà passé des heures à peaufiner votre setup et que vous voulez juste ajuster deux ou trois trucs.

Bref, si vous voulez profiter de Ghostty sans vous farcir la doc des 200+ options de configuration, c'est par là que ça se passe .

Bookokrat - Le lecteur EPUB pour les accros du terminal

Par : Korben
22 janvier 2026 à 12:49

Vous vous souvenez de l'époque où rien que de lire un texte sur un écran noir suffisait à notre bonheur ? C'était un temps où chaque pixel comptait et où la souris était encore en option... Alalala, hé bien, pour ceux qui ont gardé cette âme pure ou qui passent la plupart de leur temps dans un shell, je vous ai déniché Bookokrat , un lecteur EPUB conçu EXCLUSIVEMENT pour votre terminal.

Vous allez voir c'est super pour lire des livres pendant le boulot discretos ^^.

L'outil propose une interface en "split-view" avec les EPUB de votre répertoire courant à gauche et votre lecteur à droite. Et malgré le côté austère du terminal, Bookokrat ne fait pas de compromis puisqu'il gère comme un chef le MathML pour les formules mathématiques et affiche même les images !

Attention toutefois, le rendu dépendra de votre terminal. Par exemple sur Kitty, Ghostty ou iTerm2 c'est le top ! Mais sur Alacritty ce sera un peu moins bien, quand au Terminal.app de macOS qui ne supporte pas bien les protocoles graphiques, je vous laisse imaginer la lose.

Côté navigation, c'est du classique avec des raccourcis inspirés de Vim (hjkl pour les intimes ^^) afin de scroller, changer de chapitre ou chercher dans le texte. L'outil gère aussi les signets automatiques ce qui est pratique quand on n'a pas le temps de finir "Guerre et Paix" d'une traite et vous pouvez même ajouter des notes directement dans le texte pour ne rien oublier.

Y'a aussi un "zen mode" (Ctrl + z) pour ceux qui ont du mal à se concentrer, même si je trouve qu'il est un peu inutile, et comme c'est codé en Rust, c'est fluide de fou !

Maintenant, pour l'installer, c'est facile... Sous macOS, un coup de Brew :

brew install bookokrat

Sinon, via Cargo :

cargo install bookokrat

Voilà si vous cherchez un moyen propre de lire vos ebooks sans quitter votre shell, Bookokrat fera grave bien le taff. Puis je trouve que ça redonne un petit goût de nostalgie façon Edit à la lecture et c'est pas pour me déplaire.

Gérer les permissions NTFS avec PowerShell sur Windows 11/10

Par : malekalmorte
31 décembre 2025 à 10:32

Sous Windows 11/10, les fichiers et dossiers stockés sur un disque NTFS possèdent des autorisations (ACL) qui définissent précisément quels utilisateurs peuvent lire, modifier ou supprimer leur contenu.
Si ces permissions peuvent être configurées via l’interface graphique, PowerShell permet d’aller beaucoup plus loin :
afficher, modifier et automatiser la gestion des droits d’accès à grande échelle.

Grâce aux cmdlets Get-Acl et Set-Acl, vous pouvez :

  • afficher les permissions d’un dossier ou d’un fichier,
  • ajouter ou retirer des autorisations,
  • appliquer les mêmes règles à plusieurs répertoires,
  • et même changer le propriétaire d’un dossier bloqué.

Cette approche est particulièrement utile pour les administrateurs ou utilisateurs avancés souhaitant :

  • automatiser la gestion des droits sur un serveur ou un poste multi-utilisateurs,
  • corriger des problèmes d’accès (“Accès refusé”) sans interface graphique,
  • ou déployer des permissions identiques sur plusieurs répertoires partagés.
👉 Pour comprendre en détail la différence entre les autorisations NTFS et les permissions de partage, consultez le guide complet : Autorisations et permissions NTFS : gérer les droits d’accès et le partage de dossiers sous Windows 11/10

Gérer les permissions avec PowerShell

Lister les permissions NTFS (Get-Acl)

Pour afficher la liste complète des autorisations appliquées à un dossier ou fichier :

Get-Acl "C:\Dossier"

Cette commande affiche les ACL (Access Control List) associées à l’élément.
Pour un affichage plus lisible :

Get-Acl "C:\Dossier" | Format-List

Exemple de sortie :

Path : Microsoft.PowerShell.Core\FileSystem::C:\Users\maill
Owner : NT-AUTORITÄT\SYSTEM
Group : NT-AUTORITÄT\SYSTEM
Access : NT-AUTORITÄT\SYSTEM Allow FullControl
VORDEFINIERT\Administratoren Allow FullControl
hp-MAC\maill Allow FullControl
S-1-15-3-65536-599108337-2355189375-1353122160-3480128286-3345335107-485756383-4087318168-230526575 Allow
ExecuteFile, Synchronize
Audit :
Sddl : O:SYG:SYD:P(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;S-1-5-21-2373467495-3460344319-1749951908-1001)(A;;0x1
00020;;;S-1-15-3-65536-599108337-2355189375-1353122160-3480128286-3345335107-485756383-4087318168-230526575)

Ajouter une autorisation (AddAccessRule)

Pour accorder une permission spécifique à un utilisateur ou groupe, utilisez Set-Acl avec une nouvelle règle d’accès.

Exemple : donner le Contrôle total à l’utilisateur Paul sur le dossier C:\Partage

$acl = Get-Acl "C:\Partage"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Paul","FullControl","Allow")
$acl.AddAccessRule($rule)
Set-Acl "C:\Partage" $acl

Explications :

  • Get-Acl → récupère les permissions existantes.
  • New-Object …FileSystemAccessRule → crée une nouvelle règle d’accès.
  • AddAccessRule → ajoute la règle à la liste.
  • Set-Acl → applique la nouvelle configuration.

Vous pouvez remplacer "FullControl" par : "Read", "Write", "Modify", "ReadAndExecute" selon les besoins.

Supprimer une autorisation (RemoveAccessRule)

Pour supprimer une règle d’accès existante :

$acl = Get-Acl "C:\Partage"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Paul","FullControl","Allow")
$acl.RemoveAccessRule($rule)
Set-Acl "C:\Partage" $acl

La suppression nécessite d’utiliser exactement les mêmes paramètres que la règle initiale (même utilisateur, droit et type “Allow” ou “Deny”).

Modifier les permissions d’un dossier et de ses sous-dossiers (Set-Acl)

Pour appliquer les nouvelles autorisations à tous les sous-dossiers et fichiers :

$acl = Get-Acl "C:\Partage"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Paul","Modify","ContainerInherit,ObjectInherit","None","Allow")
$acl.SetAccessRule($rule)
Get-ChildItem "C:\Partage" -Recurse | Set-Acl -AclObject $acl

Explications :

  • Get-ChildItem -Recurse → parcourt récursivement toute l’arborescence.
  • ContainerInherit,ObjectInherit → applique la règle aux sous-dossiers et fichiers.
Cette commande réécrit les ACL de tous les sous-dossiers.
Utilisez-la avec prudence sur un volume contenant beaucoup de fichiers.

Supprimer toutes les autorisations personnalisées (réinitialiser les ACL)

Pour revenir à la configuration par défaut (héritée du dossier parent) :

icacls "C:\Partage" /reset /T

Cette commande supprime toutes les règles explicites et rétablit les permissions héritées.
Elle est utile pour corriger des erreurs “Accès refusé” ou des droits corrompus.

Changer le propriétaire d’un dossier (SetOwner)

Pour appliquer le changement de propriétaire à tout un dossier et ses sous-dossiers :

$path = "C:\Dossier"
$owner = [System.Security.Principal.NTAccount]"Administrateurs"
Get-ChildItem -Path $path -Recurse -Force | ForEach-Object {
    $acl = Get-Acl $_.FullName
    $acl.SetOwner($owner)
    Set-Acl $_.FullName $acl
}

Cette commande parcourt récursivement tous les fichiers et sous-dossiers.
Elle peut être longue sur un volume contenant de nombreux éléments.

👉Pour le guide complet sur le changement de propriétaire via l’interface graphique ou la ligne de commande :
Changer le propriétaire d’un dossier sous Windows 11/10

Vérifier le propriétaire actuel

Pour afficher le propriétaire d’un dossier ou fichier :

(Get-Acl "C:\Dossier").Owner

→ Renvoie le nom du compte ou groupe actuellement propriétaire du dossier.

Exemple de script complet : accorder des droits en masse

$users = @("Paul", "Jean", "ServiceRH")
$path = "C:\Dossiers\RH"

foreach ($user in $users) {
$acl = Get-Acl $path
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($user,"Modify","ContainerInherit,ObjectInherit","None","Allow")
$acl.SetAccessRule($rule)
Set-Acl $path $acl
}

Ce script attribue automatiquement les permissions “Modifier” à plusieurs utilisateurs pour un même dossier.

PowerShell permet d’automatiser facilement des opérations complexes, comme appliquer des autorisations à plusieurs répertoires ou générer un rapport d’audit des droits.

Tableau récapitulatif des cmdlets PowerShell pour gérer les permissions NTFS

Cmdlet / CommandeFonction principaleSyntaxe de baseExemple d’utilisation
Get-AclAffiche la liste des autorisations (ACL) appliquées à un fichier ou dossier.Get-Acl "C:\Dossier"Affiche les permissions et le propriétaire du dossier.
Set-AclApplique ou met à jour des autorisations sur un fichier ou dossier.Set-Acl "C:\Dossier" $aclMet à jour les ACL selon les règles définies dans $acl.
New-Object System.Security.AccessControl.FileSystemAccessRuleCrée une nouvelle règle d’autorisation NTFS (utilisateur, droit, type).$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Paul","Modify","Allow")Crée une règle donnant à Paul le droit de modifier le dossier.
AddAccessRule()Ajoute une nouvelle autorisation à une ACL existante.$acl.AddAccessRule($rule)Ajoute la règle $rule aux ACL existantes du dossier.
RemoveAccessRule()Supprime une autorisation spécifique.$acl.RemoveAccessRule($rule)Supprime la règle $rule précédemment définie.
SetOwner()Définit un nouveau propriétaire sur un dossier ou fichier.$acl.SetOwner([System.Security.Principal.NTAccount]"Administrateurs")Change le propriétaire pour le groupe Administrateurs.
Get-ChildItem -Recurse + Set-AclApplique des permissions à tous les sous-dossiers et fichiers.`Get-ChildItem « C:\Dossier » -RecurseSet-Acl -AclObject $acl`
**Get-AclFormat-List**Affiche les ACL dans un format lisible.`Get-Acl « C:\Dossier »
icacls (CMD) (complément)Réinitialise ou sauvegarde les ACL en ligne de commande.icacls "C:\Dossier" /reset /TRéinitialise toutes les permissions NTFS du dossier.
takeown (CMD) (complément)Reprend la propriété d’un dossier ou fichier.takeown /f "C:\Dossier" /r /d yAttribue la propriété au compte administrateur courant.

Notes importantes

  • Les cmdlets PowerShell (Get-Acl, Set-Acl, etc.) sont plus flexibles et scriptables que les commandes classiques (icacls, takeown).
  • Pour toute commande modifiant les ACL, il est recommandé d’exécuter PowerShell en tant qu’administrateur.
  • Avant de modifier massivement des droits, vous pouvez sauvegarder les ACL avec : icacls "C:\Dossier" /save C:\backup_acl.txt /T
PowerShell ne demande pas de confirmation avant d’appliquer une modification via Set-Acl.
Une erreur dans la variable $acl ou dans les permissions héritées peut supprimer des droits critiques.

Bonnes pratiques et précautions

  • Ne jamais appliquer un script sans sauvegarder les ACL : icacls "C:\Dossier" /save C:\Backup_ACL.txt /T
  • Utiliser la commande Test-Path pour vérifier les chemins avant exécution.
  • Toujours tester sur un dossier isolé avant d’appliquer sur un volume complet.
  • Exécuter PowerShell en mode Administrateur.
Une mauvaise manipulation des ACL peut rendre un dossier ou un disque inaccessible.
Pensez à sauvegarder vos permissions avant toute modification en masse.

Ressources utiles et articles liés

L’article Gérer les permissions NTFS avec PowerShell sur Windows 11/10 est apparu en premier sur malekal.com.

❌
❌