Avec Samba, il est possible de fournir une “corbeille réseau”, c'est en gros, un répertoire dans lequel on retrouvera les fichiers ou répertoires effacés par les utilisateurs.
Pour l'installation, regardé Installation d'un serveur SAMBA 4, les modes sont aussi détaillés rôle member server, security ADS et rôle standalone, security USER.
Je montrerai également l'option de gestion des versions, puisqu'elle existe, pour le cas ou plusieurs fichiers du même nom viendraient à être supprimés à des dates différentes.
2 choix s'offre à nous :
La méthode reste la même, éditer le fichier smb.conf
Ce choix permet d'avoir une corbeille pour tous les utilisateurs et tous les répertoires que vous avez pu mettre en partage sur Samba, pour cela, il suffit de mettre les options suivantes dans la section [global]
du fichier de configuration smb.conf
:
[global] ...config... vfs objects = recycle recycle:repository = /repertoire/.recycle recycle:keeptree = yes recycle:versions = yes
Ensuite, il suffit de créer le répertoire:
mkdir /repertoire/.recycle chmod 775 /repertoire/.recycle
Ne pas oublier de relancer samba :
/etc/init.d/samba reload #ou restart
Ce choix permet de mettre une corbeille pour un répertoire que vous avez pu mettre en partage sur Samba, pour cela, il suffit de mettre les options suivantes dans la section [rep]
qui correspond au répertoire que vous voulez partager dans le fichier de configuration smb.conf
:
[rep] path=/rep ...config... vfs objects = recycle recycle:repository = .recycle recycle:keeptree = yes recycle:versions = yes
Le point au début de “.recycle ” pour obtenir un répertoire caché.
Inutile de créer le répertoire, Samba le fera pour vous à la première suppression de fichiers.
Relancer le service :
/etc/init.d/samba reload #ou restart
Les corbeilles ne se vide pas seule, c'est un problème surtout quand vous ajoutez la gestion des versions, une solution simple est de supprimer les fichiers ou répertoires trop vieux, mettre ce qui suit dans un crontab
. (sur les exemples j'ai mis 30 jours)
Pour notre corbeille globale
/usr/bin/find /repertoire/.recycle -mtime +30 -exec /bin/rm -Rf {} \;
Pour nos autres corbeilles dans le répertoire rep
définit dans smb.conf
:
/usr/bin/find /rep/.recycle -mtime +30 -exec /bin/rm -Rf {} \;