Contexte
Voici la procédure utilisée à l'université de Lorraine, nous permettant de supprimer les comptes dans Nextcloud ne faisant plus parti de notre Système d'Information.
Ils sont identifiés comme étant des comptes ldap-remnants.
Avant tout, il est important que les données issues d'un partage soient conservées, pour laisser le temps au destinataire final de les récupérer, si nécessaire.
Suppression du compte | Archive de l'espace | On informe | Commentaires | ||
Un utilisateur n'est plus présent dans notre ldap | |||||
---|---|---|---|---|---|
1 | s'il n'a effectué aucun partage |
| |||
2 | s'il a effectué des partages | à J+30 | On informe les destinataires des partages |
|
Dans les cas ci-dessous, on notera "User 0" l'utilisateur dont le compte LDAP a été supprimé (compte ldap-remnant dans Nextcloud) et qu'il faut supprimer.
1er cas - User 0 n'a fait aucun partage
Cas simple, on fait une archive de ses données et on supprime son compte (l'archive sera conservée sur le serveur pendant un an).
# Création archive cd ${DIR_DATA}/${USER}/files && zip -r ${DIR_SAVE}/${DATE}-${USER}.zip * && cd ${DIR} # Suppression du compte sudo -u apache /usr/bin/php ${DIR_BUL}/php/console.php user:delete ${USER}
2ème cas - User 0 a partagé des documents
User 0 a partagé son dossier Mon_dossier avec User 1 et User 2
- On écrit les infos récupérés dans un fichier
uid_owner;uid_initiator;share_with;file_target;date_remove User0;User0;User1;/Mon_dossier;<date format timestamp>
- On informe les destinataires du partage pour qu'il sauvegarde les données
- Étape suivante (Jour J)
# Création archive cd ${DIR_DATA}/${USER}/files && zip -r ${DIR_SAVE}/${DATE}-${USER}.zip * && cd ${DIR} # Suppression du compte sudo -u apache /usr/bin/php ${DIR_BUL}/php/console.php user:delete ${USER}
Déroulement
Scénario traitement compte LDAP_Remanent_BUL -------------------------------------------- - On liste des comptes 'ldap-remnants' - On vérifie pour chaque utilisateur, qu'il ne soit pas présent dans le fichier de traitement "<nom_du_script>.txt" SI OUI - On vérifie si l'utilisateur a des partages SI OUI - On alimente le fichier de traitement "<nom_du_script>.txt" avec les informations récupérées de la BDD, date_remove est au format timestamps et valué à la date du jour +31 jours : uid_owner;uid_initiator;share_with;file_target;date_remove SINON - Création de l'archive : `cd ${DIR_DATA}/${USER}/files && zip -r ${DIR_SAVE}/${DATE}-${USER}.zip * && cd ${DIR}` - Suppression du compte 'ldap-remnants' : `sudo -u apache /usr/bin/php ${DIR_BUL}/php/console.php user:delete ${USER}` FI SINON - On vérifie la date de suppression du compte : $date_remove Cas 1 (J-30) - On vérifie dans le fichier "<nom_du_script>.txt", que $share_with n'est pas vide SI OUI - On construit le corps du mail en listant les partages et les personnes ayant l'accès - On envoie le mail SINON - On ne fait rien Cas 1 (J-15) - On vérifie dans le fichier "<nom_du_script>.txt", que $share_with n'est pas vide SI OUI - On construit le corps du mail en listant les partages et les personnes ayant l'accès - On envoie le mail SINON - On ne fait rien Cas 2 (J-1) - On vérifie dans le fichier "<nom_du_script>.txt", que $share_with n'est pas vide SI OUI - On construit le corps du mail en listant les partages et les personnes ayant l'accès - On envoie le mail SINON - On ne fait rien Cas 3 (Jour J) - Création de l'archive : `cd ${DIR_DATA}/${USER}/files && zip -r ${DIR_SAVE}/${DATE}-${USER}.zip * && cd ${DIR}` - Suppression du compte 'ldap-remnants' : `sudo -u apache /usr/bin/php ${DIR_BUL}/php/console.php user:delete ${USER}` - Suppression de la ligne dans le fichier "<nom_du_script>.txt" : `sed -i "/^${USER}/d" ${FILE_TRAITEMENT}` - On vérifie la cohérence des partages entre la BDD et le fichier de traitement, ce qui permettra aux personnes ayant désactiver le partage de ne plus recevoir de mail de rappel. - On effectue un diff entre la requête SQL pour alimenter le fichier de traitement et le fichier de traitement SI il y a des (-) on supprime du fichier de traitement SI il y a des (+) on ajoute au fichier de traitement en fin de fichier FI - On vérifie s'il existe des archives depuis plus de 6 mois, si c'est le cas, on supprime find ${DIR_SAVE}/*.zip -mtime +${JRS_SUPP} -delete
Sources
Description | Fichier |
---|---|
Fichier principal de traitement | |
Fichier des fonctions utilisées | |
Fichier de configuration LDAP |
Contact
Pour toutes questions vous pouvez me contactez à mon adresse email : camille.herry@univ-lorraine.fr