This feed contains pages in the "coding" category.

Comme quoi ca fait toujours plaisir de lire les pages de manuel sans but précis, j'ai ainsi pû rencontrer l'option archive disponible dans git et également dans hg.

Cette option, comme son nom ne l'indique pas, permet de faire des archives du repository courant, ou d'une révision spécifique, etc. Cela permet de simplifier les horreurs qu'on peut mettre dans son Makefile pour la célèbre cible dist, cf le diff suivant que je suis en train d'appliquer un peu partout :

diff --git a/Makefile b/Makefile
index 458b46b..3b6e9e8 100644
--- a/Makefile
+++ b/Makefile
@@ -4,8 +4,7 @@

     dist:
-       -make clean
-       (cd .. && tar --exclude=.git -zcvf bla.tgz bla/)
+      git archive --prefix="$(shell basename $(PWD))/" --format=tar HEAD | gzip > "../$(shell basename $(PWD)).tgz"

Ca fait plaisir, si git pouvait avoir également le support des tarballs gziffiées et bz2ifiées comme son copain hg, ca serait parfait.

Posted Fri 14 Dec 2007 06:42:31 PM CET Tags: coding

L'administration système est sûrement le boulot le plus difficile, techniquement comme humainement parlant, car vous devez connaître tous les outils utilisés, les effets de bord, les impacts sur la sécurité des données et je ne parle même pas de l'horreur des sauvegardes ou de l'enfer des mises à jour.

Enfin, ça, c'est la théorie, car dans la pratique, l'équipe d'administration se contente... d'administrer. À part les vieux, on rencontre de moins en moins d'administrateurs barbus, qui maîtrisent un langage de script ou les arcanes de leurs MTA. C'est pour ça qu'aujourd'hui, si on veut compromettre un réseau, il est beaucoup plus efficace de regarder les scripts écrits par l'administrateur que faire de la veille de vulnérabilité pour Apache.

Un exemple ? Facile, voici un extrait de script executé (sous uid=0) à chaque fin de session utilisateur dans une université parisienne :

# ... plusieurs centaines de lignes de bullshit
chown -R $USER:$GROUP $HOME_USER/
chmod -R u-s,g-s,o-t  $HOME_USER/

Tout ça, c'est de mémoire mais le code était bien pire.

Avez vous vu le problème ? Sachant que tous les professeurs, élèves et même les administrateurs avaient toujours un répertoire tmp/ ou incoming/ en World-Writable pour recevoir les comptes-rendus ou travaux pratiques des élèves.

La race condition se passait les doigts dans le nez malgré le quota de 10 Mo avec la création de milliers de répertoires imbriqués. Vous posiez vos billes et paf, vous n'aviez qu'à attendre la déconnexion de la victime (facile puisque les droits de reboot n'étaient pas révoqués).

Et je parle même pas des problèmes de non quotage des variables, des interfaces Web de changements de mot de passe, du répertoire contenant les logs Apache qui est en écriture pour les users, etc. Tout ce qui est homemade est toujours le premier truc à analyser... Bonne chasse :)

Posted Fri 14 Sep 2007 06:22:06 PM CEST Tags: coding

Oh thanks God, c'est jour de fête : le nombre d'arguments dans la ligne de commande est enfin dynamique, il n'y a plus de limitation à 4096 paramètres ! Dites adieu à votre find /foo/bar/ -print0 | xargs -0 que vous utilisiez pour contourner cette limitation stupide ou autres boucle shell.

Posted Thu 23 Aug 2007 08:05:24 PM CEST Tags: coding