Corbeille réseau

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.

Cela ne protège pas du couper/coller, donc méfier vous du sabotage

2 choix s'offre à nous :

la corbeille global

la corbeille pour un répertoire partagé

La méthode reste la même, éditer le fichier smb.conf

La corbeille global

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

la corbeille pour un répertoire partagé

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

Vider les corbeilles automatiquement

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 {} \;