Projet

Général

Profil

Scénario #36048

Corbeille Samba non vidée

Ajouté par Philippe Carre il y a 2 jours. Mis à jour il y a 2 jours.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Début:
06/11/2023
Echéance:
14/12/2023
% réalisé:

0%

Points de scénarios:
-
Estimation basée sur la vélocité:

Historique

#1 Mis à jour par Philippe Carre il y a 2 jours

  • Projet changé de Distribution EOLE à EOLE AD DC

Demande d'un collègue , après une étude un peu poussée du cas des suppressions des fichiers de la corbeille samba.
A priori cette fonctionnalité n'a jamais fonctionné !?


Un service nous a remonté un souci avec les corbeilles des dossiers partagés via Samba.
Depuis Eole 2.7, il existe une option "Activer la corbeille pour le partage", paramétrable dans Zéphir dans la famille 'Active Directory'.
Cette fonctionnalité de corbeille propose un délai avant suppression définitive des données présentes, toujours sous Zéphir :
"Durée de conservation des fichiers dans la corbeille" (dont la valeur par défaut est "8" (jours)).
Le service a constaté que tous les fichiers placés en corbeille ne sont jamais vidées, ni après 8 jours ni après plusieurs mois voire années, ce qui fait que le serveur de fichier se rempli indéfiniment en l'absence de suppression des fichiers au bout de 8 jours.

En analysant de notre côté sur les serveurs Eole 2.7 et 2.8, nous avons recherché la variable correspondante à cette durée de conservation des données, pour trouver le ou les scripts Eole correspondants au vidage des corbeilles de dossiers partagés, mais sans n'avoir pu les trouver.
La variable (ad_recycle_bin_purge) ne remonte que dans le dictionnaire adéquat, tandis qu'aucun script ne reprend cette variable :

root@set-ente-59adm1:# rgrep ad_recycle_bin_purge /usr/share/
/usr/share/eole/creole/dicos/25_smb_ad.xml: <variable name='ad_recycle_bin_purge' type='number' description='Durée de conservation des fichiers dans la corbeille' mode='expert' mandatory='True'>
/usr/share/eole/creole/dicos/25_smb_ad.xml: <target type='variable'>ad_recycle_bin_purge</target>
root@set-ente-59adm1:#

En comparant avec la variable de création de partage hébergeant les dossiers personnels des utilisateurs AD, qui elle est bien reprise ailleurs que dans un dictionnaire :

root@set-ente-59adm1:/usr/share/eole# grep -r "activer_ad_homes_share" *
creole/dicos/25_smb_ad.xml:

creole/dicos/25_smb_ad.xml:

creole/dicos/25_smb_ad.xml:

creole/dicos/25_smb_ad.xml: Créer le partage hébergeant les dossiers personnels (Home Directory) des utilisateurs
creole/variables.eol:activer_ad_homes_share:oui
creole/distrib/smb-ad.conf:%if %activer_ad_homes_share 'oui'
creole/distrib/apparmor_samba_usr.sbin.clamd: %if %%activer_ad_homes_share 'oui'
creole/distrib/samba4-vars.conf:ACTIVER_AD_HOMES_SHARE='
%activer_ad_homes_share'
creole/distrib/bareos-samba.conf:%if (%activer_ad_homes_share 'oui' and %%ad_home_share_path.startswith('/home')) or (%activer_ad_profiles_share 'oui' and %%ad_profile_share_path.startswith('/home')) or %%is_defined('ad_server_netbios_name_member')
creole/distrib/bareos-samba.conf:%if %%activer_ad_homes_share 'oui' and not %%ad_home_share_path.startswith('/home')
creole/distrib/bareos-samba.conf:%if %%activer_ad_homes_share 'oui' or %%mode_conteneur_actif == 'oui'
sbin/seth_samba_join:HOMES=$(CreoleGet activer_ad_homes_share)

J'ai vérifié tous les jobs planifiés (dans cron daily), plusieurs jobs existent, mais aucun n'agit pour supprimer les fichiers des corbeilles de plus de xx jours (où 'xx' correspond à la valeur de la durée de conservation des fichiers dans les corbeilles).

Est-ce qu'un tel script pour vider les corbeilles existent bien ? Si oui, comment l'appeler (via un dictionnaire supplémentaire peut-être) ?

Merci beaucoup par avance pour votre aide sur ce sujet.

#2 Mis à jour par Joël Cuissinat il y a 2 jours

Dans squash, nous testons la plupart des combinaisons possibles... pour les remplir uniquement !
AD-ECO-004-04 - Test des corbeilles

#3 Mis à jour par Joël Cuissinat il y a 2 jours

Sur le module Scribe, la corbeille est activable uniquement sur les partages personnels et le nettoyage géré par un script eole-schedule :

root@scribe:~# CreoleGet --list | grep trash
smb_trash="oui" 
smb_trash_dir="perso/.corbeille" 
smb_trash_purge="8" 
root@scribe:~# manage_schedule -l  | grep trash
   + Purge des corbeilles Samba (smbtrash)
root@scribe:~# cat /usr/share/eole/schedule/scripts/smbtrash 
#!/bin/bash
if [ $(CreoleGet smb_trash non) = 'oui' ];then
    dirname=$(basename $(CreoleGet smb_trash_dir))
    safe_dirname=$(echo "$dirname" |sed -e 's/\./\\./g')
    home_path=$(CreoleGet home_path)
    smb_trash_purge=$(CreoleGet smb_trash_purge)
    #suppression de tous de type de fichier non répertoire puis suppression des répertoires vides #4727
    find /$home_path ! -type d -ctime +$smb_trash_purge -path "*/$safe_dirname/*" -delete &>/dev/null
    find /$home_path -type d -empty -ctime +$smb_trash_purge -path "*/$safe_dirname/*" -delete &>/dev/null
fi

Formats disponibles : Atom PDF