Quelques astuces diverses, troisième
J’ai fini par les apprécier, ces billets astuces en vrac. Alors en attendant qu’il y en ai un quatrième et qu’ils aient leur propre série dans le menu idoine, voici déjà le troisième épisode. Au programme, du serveur Web, du Bash, et d’autres joyeusetés.
Whitelister le dossier .well-known derrière un mot de passe htaccess
Sous Apache, si vous voulez créer/renouveler un certificat Let’s Encrypt, vous avez deux solutions, créer un Alias avec un dossier à part qui n’est pas protégé par mot de passe, soit autoriser les requêtes sur le dossier .well-known dans le DocumentRoot déjà protégé. Sur Apache 2.4, il suffit d’ajouter une ligne à côté des autres Require :
1 |
Require expr %{REQUEST_URI} =~ m#^/.well-known/acme-challenge/# |
Supprimer les règles en doublon dans un fichier de réécriture
Dernièrement, le gros site d’un client a complètement été refondu. Qui dit refonte dit modifications des URLs, et pour ne pas trop perdre en référencement, on procède alors à des réécritures. Un peu pus de 400 réécritures dans le cas présent, mais transmises sous forme de tableau Excel, qu’il faut alors transformer en autant de règles Nginx. Le travail a été douloureux, notamment en raison de doublons qui faisaient que certaines règles n’étaient pas prises en compte. Pour supprimer ces doublons, j’ai utilisé une petite combinaison en Bash :
1 |
cat nginx-www.site-inter.net.rewrites |sort |uniq > nginx-www.site-inter.net.final.rewrites |
Il n’y a plus qu’à inclure ce fichier final. 27 doublons de supprimés, autant de règles qui ne font plus chier.
Regex de cochon
On m’a demandé de faire une redirection d’une URI en particulier vers une autre, pour plusieurs domaines. Plutôt que de créer autant de règles en fonction des domaines (avec et sans www), j’ai groupé le tout avec une seule expression régulière, que je partage donc ici pour inspiration :
1 2 3 4 |
RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?site.(fr|de|it|be)$ RewriteCond %{REQUEST_URI} ^/raccourci RewriteRule ^(.*)$ http://{HTTP_HOST}/reel [L,R] |
Inverser deux paramètres en bash
Qui n’a jamais pesté, depuis l’arrivée de systemd, d’avoir inversé le nom d’un service et l’opération voulue ?
Remember :
1 2 3 |
service httpd start systemctl start httpd |
Et bien plutôt que de tout réécrire ou de jouer avec les flèches et supprimer, vous pouvez, à l’aide d’un Esc
, puis t
, inverser les deux derniers éléments de la commande. Un vrai bonheur :
Un alias pour relancer une commande avec sudo
Avec l’utilisation quasi-généralisée de sudo dans les distributions, malgré tout, en l’occurrence si vous parcourez souvent mes articles, il se peut qu’on oublie de saisir une commande avec. Plutôt que de revenir en arrière et d’aller ajouter sudo au début, vous pouvez saisir sudo !! qui va lancer sudo avec la dernière commande complète saisie. Collez ça dans un alias, et admirez le travail :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[seboss666@seboss666-pc ~ ]$ pacman -S ansible erreur : vous ne pouvez pas effectuer cette opération à moins d’être root. [seboss666@seboss666-pc ~ ]$ fuck sudo pacman -S ansible [sudo] password for seboss666: résolution des dépendances... recherche des conflits entre paquets... Paquets (6) python2-crypto-2.6.1-3 python2-jinja-2.8-2 python2-markupsafe-0.23-3 python2-paramiko-2.0.2-1 python2-yaml-3.12-1 ansible-2.2.0.0-1 Taille totale du téléchargement : 4,15 MiB Taille totale installée : 38,36 MiB :: Procéder à l’installation ? [O/n] |
Désactiver globalement la géolocalisation dans Firefox
Une fois n’est pas coutume, une astuce pour Firefox qui n’a pas le droit à son propre article (ce qui était arrivé pour les liens Magnet). En effet, par défaut, Firefox vous pose la question chaque fois qu’un site internet demande à utiliser votre position. Mais il n’y a aucune option dans l’interface pour désactiver globalement l’option, ce qui est assez pénible, surtout si vous enchaînez les sites qui ne s’en servent qu’à des fins publicitaires (surtout si comme moi, vous utilisez un bloqueur de pub). C’est donc une fois de plus dans about:config qu’on va modifier l’option :
1 |
geo.enabled false |
Désactiver la gestion de l’alimentation au niveau de systemd
En attendant de pouvoir m’équiper pleinement de ce que je veux faire, j’ai ressorti mon vieux laptop pour m’en faire un serveur (sisi c’est possible, j’en avais déjà parlé, souvenez-vous). Mon problème, même en installation Debian minimale il se mettait en veille en rabattant l’écran, ce qui m’est totalement inutile. systemd permet de ne plus s’embêter avec ça :
1 |
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target |
Cela va remplacer les pointages des liens actuels par /dev/null. Un reboot plus tard, c’est réglé.
Convertir sa clé privée ECDSA pour Filezilla sous Windows
Filezilla supporte l’utilisation de clé SSH au format PPK (celui de PuTTY), et ce même pour les clés ECDSA. Malheureusement, la version « stable » actuelle (0.67) de PuTTYgen ne permet pas d’importer de telles clés. Qu’à cela ne tienne, il suffit de se rabattre sur la version de développement pour faire le boulot. Si vous n’avez pas besoin de PuTTY, mais juste de convertir la clé, vous pouvez juste rapatrier l’utilitaire, il fonctionne en standalone sans problème.
Les doubles crochets pour vos tests dans un script bash
Ils sont super pratiques et permettent non seulement d’utiliser une autre syntaxe pour faire des conditions multiples, mais également écarter des problèmes de types de variables :
1 |
[[ $# -ne 1 ]] #(pour tester le nombre de paramètres, sans se soucier si c'est bien un entier et pas une chaine de caractères) |
Un no-life sur StackOverflow a détaillé les avantages non seulement des crochets, mais aussi des accolades, des parenthèses…
Calculer le poids d’un groupe de fichiers identifiés par find
J’avais besoin de calculer l’espace gagné par un éventuel nettoyage de fichiers de logs Apache de plus d’un an (puisque pour l’instant en France, c’est la limite légale). Compliqué, mais pas impossible, et à combiner différentes recherches je suis arrivé à cette commande :
1 |
find . -type f -mtime +365 -print0 | du --files0-from=- -hc | tail -n1 |
La suite au prochain épisode comme on dit 🙂
Merveilleux le ESC + t ! Merci !
N’est-ce pas 🙂 Il m’a servi pas plus tard qu’aujourd’hui d’ailleurs 😀
Top je ne connaissais pas 🙂 même si un petit alias « sstart », « sstop » est préférable pour ne pas se prendre la tête ^^
Merci pour l’astuce de firefox.