si3t.ch> cd /

TaBr - un Makefile pour tout installer proprement

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.

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?

Envoyez votre commentaire par mail (anonyme).

Mode d'emploi de la liste de diffusion pour recevoir les réponses.


[XHTML 1.1 valid] [CSS < 256B] [] [http/Tor]