# TaBr - un Makefile pour tout installer proprement 2023-05-15T15:26:55Z => /code/TaBr.tgz Si vous souhaitez vous approprier la suite "TaBr" dont je parle depuis plusieurs articles, vous pouvez en consulter les sources ici. (TaBr.tgz) Vous y trouverez un fichier README.txt qui explique rapidement les différents composants ainsi que les instructions pour créer les utilisateurs et configurer doas pour bien séparer les privilèges. Pour le reste, je vous ai préparé un Makefile qui simplifie l'installation et ajuste automatiquement les permissions. Je voudrais ici mettre en avant la commande "install" qui permet de faire ça beaucoup plus proprement qu'une suite de "cp", "mkdir", "chown" et "chmod". En gros, un simple "make install" et c'est prêt :) Tout d'abord, on précise quelques variables. Ce n'est sans doute pas parfait, mais c'est un bon début pour rendre la suite portable si un jour quelqu'un en a l'intention: ``` PREFIX ?=/usr/local BINDIR ?=${PREFIX}/bin SBINDIR ?=${PREFIX}/sbin CGIDIR ?=/var/www/cgi-bin CHPWREQDIR ?=/var/www/tabr_chpw_requests ``` Je précise ensuite les trucs qui devront être compilés: ``` all: src/tabr_chpw_cgi src/hashmatchstr ``` Reste à préciser les dépendances des fichiers à compier, histoire qu'ils soient recompilés en cas de modification de la configuration: ``` src/chpw_cgi/main.c: src/chpw_cgi/config.h src/tabr_chpw_cgi: src/chpw_cgi/main.c ${CC} -static -o $@ $? src/hashmatchstr: src/hashmatchstr.c ${CC} -o $@ $? ``` Avant d'aller plus loin, on précise comment nettoyer les fichiers compilés. C'est surtout utile pour les tests ``` clean: rm src/tabr_chpw_cgi rm src/hashmatchstr ``` La suite permet d'installer les fichiers en les rendant éxécutables et en les faisant appartenir à root ou _tabr_admin selon les cas : ``` install: src/tabr_chpw_cgi src/hashmatchstr install -o root -g daemon -m 0755 src/tabr_chpw_cgi ${CGIDIR}/tabr_chpw.cgi @# IMPORTANT: chmod 730, www can write but can't read install -o _tabr_admin -g www -m 0730 -d ${CHPWREQDIR} install -m 0755 -o root -g bin src/hashmatchstr ${BINDIR}/hashmatchstr install -m 0755 -o root -g bin src/tabr_adduser.sh ${SBINDIR}/tabr_adduser install -m 0755 -o root -g bin src/tabr_passwd.sh ${SBINDIR}/tabr_passwd install -m 0755 -o root -g bin src/tabr_deluser.sh ${SBINDIR}/tabr_deluser install -m 0644 -o root -g wheel src/tabr.conf /etc/ ``` Remarquez la ligne avec "-m 0730" qui permet de restreindre l'accès au dossier qui contiendra les requêtes pour changer de mot de passe. Enfin, parce que ça me manque dans de nombreux Makefile, je prévois de quoi faire le ménage: ``` uninstall: rm -rf ${CGIDIR}/tabr_chpw.cgi rm -f ${BINDIR}/hashmatchstr rm -f ${BINDIR}/tabr_adduser rm -f ${BINDIR}/tabr_passwd rm -f ${BINDIR}/tabr_deluser @printf "You probably should remove %s and %s too\n"\ "${CHPWREQDIR}" "/etc/tabr.conf" ``` Voilà de quoi me simplifier la vie et proposer des services à ma famille. Ici, je n'ai présenté que le mail et xmpp, mais il y en a en réalité un peu d'autres de prévus : dokuwiki (grâce à son interface de gestion des utilisateurs en CLI) qui offre un espace de publication ET de stockage. Il faut juste bien ajuster les ACL. => /contact/ J'y pense, si ça intéresse quelqu'un, je peux vous proposer une adresse en @si3t.ch, il suffit de me faire signe. ## Une réaction? => mailto:bla@bla.si3t.ch?subject=TaBr-Makefile-part5 Envoyez votre commentaire par mail (anonyme). => /log/commentaires/ Mode d'emploi de la liste de diffusion pour recevoir les réponses.