User Tools

Site Tools


journal:2020:day-2020-06-03

Mise en oeuvre de l'espace documentaire

L'espace documentaire est hébergé dans le répertoire /var/lib/tftpboot du serveur 10.13.254.143.

Il héberge :

  1. les fichiers de configuration des switchs déposés par tftp
  2. les tables de brassage déposées par ftp

Les fichiers déposés dans ce répertoire sont automatiquement versionnés dans le serveur GOGS https://10.13.254.73 L'automatisme de versionning est le suivant:

Vsftpd

Les fichiers sont déposés par ftp dans le répertoire upload en anonymous

L'upload est autorisé uniquement sur le répertoire /var/ftp/upload (pour des raisons de sécurité vsftpd ne permet pas les upload dans le répertoire root (/var/ftp) de la connexion anonymous)

mkdir -p /var/ftp/upload
chmod 777 /var/ftp/upload
chown ftp:ftp /var/ftp/upload 

vsftpd est configuré pour autoriser les uploads anonymes et permettre le chroot() de l'utilisateur FTP anonyme dans /var/ftp:

# /etc/vsftpd/vsftpd.conf
listen=yes
#Les directives suivantes empêchent les utilisateurs locaux de se connecter et permettent respectivement un accès anonyme.
local_enable=NO
anonymous_enable=yes
#La directive suivante permet l'accès en écriture au système de fichiers du serveur ftp.
write_enable=yes
anon_upload_enable=yes
# Définit le répertoire racine des connexions anonymes.
anon_root=/var/ftp

Icrontab

Des évènements inotify provoquent l'exécution des scripts:

  1. /usr/bin/incron_automove.sh lorsqu'un fichier est déposé dans /var/ftp/upload
  2. /usr/bin/incron_autogit.sh lorsqu'un fichier est déposé ou déplacé dans /var/lib/tftpboot
/var/ftp/upload/ IN_CLOSE_WRITE /usr/bin/incron_automove.sh $@ $#
/var/lib/tftpboot/ IN_MOVED_TO,IN_MODIFY,IN_CLOSE_WRITE /usr/bin/incron_autogit.sh $@ $#

Script incron_automove.sh

Le script incron_automove.sh provoque le déplacement des fichiers reçus dans /var/ftp/upload dans le répertoire /var/lib/tftpboot.

#!/bin/bash
##############################
# /usr/bin/incron_automove.sh
# script gérant les fichiers téléchargés dans le répertoire surveillé
# recoit  en paramêtre = $1 : le répertoire / $2 :le nom du  fichier
# événement  IN_CLOSE
###############################
#
# Déplacement répertoire surveillé
cd "$1"
# Déplacement  du  fichier  reçut en  paramètre
# vers le répertoire /var/lib/tftpboot/
mv $2 /var/lib/tftpboot/ -f

Script incron_autogit.sh

Le script incron_autogit.sh Gère le versionnage des fichiers reçus (IN_CLOSE) ou déplacés (IN_MOVED_TO) dans le répertoire /var/lib/tftpboot, et l'envoi d'un mail dans la boite générique.

#!/bin/bash
##############################
# /usr/bin/incron_autogit.sh
# script générant le transfert des fichiers dans GIT
# recoit  en paramêtre = $1 : le répertoire / $2 :le nom du  fichier
# événements IN_MOVED_TO,IN_MODIFY,IN_CLOSE
###############################
#
# Déplacement répertoire surveillé
cd "$1"
# 1 - add    ->  git add <nom_du_fichier>
git add $2
# 2 - commit ->  git commit -m '<message du commit>'
git commit -m $(date +%A-%d%m%Y-%H%M)
# 3 - push   ->  git push [<url-to-remote>|<alias-of-remote] <branche>
git push origin master
# Envoi d'un mail dans la boite générique
echo "dépôt du fichier $2 le $(date +%A-%d/%m/%Y) à $(date +%Hh%M) " | mail -r "esi.marseille.snsreseau@dgfip.finances.gouv.fr" -s "NESSUS: dépôt d'un fichier dans tftpboot" jacques.nougat@dgfip.finances.gouv.fr
echo "dépôt du fichier $2 le $(date +%A-%d/%m/%Y) à $(date +%Hh%M) " | mail -r "esi.marseille.snsreseau@dgfip.finances.gouv.fr" -s "NESSUS: dépôt d'un fichier dans tftpboot" esi.marseille.snsreseau@dgfip.finances.gouv.fr

Sendmail

Configuration de sendmail en relay SMTP dans /etc/mail/sendmail.cf

# "Smart" relay host (may be null)
DSsmtp.oc.dgfip
journal/2020/day-2020-06-03.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1