Vidage d'un directory appartenant à un autre user chaque semaine

J'ai un directory temporaire mis en place où les users peuvent placer tous les files dont ils ont besoin pour envoyer à d'autres users via HTTP. Le propriétaire de ce directory est un user SFTP et ne peut pas exécuter de tâches cron.

J'ai un user shell qui peut exécuter des tâches cron, mais n'a pas l'autorisation de modifier les files dans le directory de l'user SFTP.

J'ai un user administrateur qui peut accéder au directory de l'user SFTP lors de l'utilisation de sudo, mais ne peut pas (exécuter: j'aimerais vraiment pas) exécuter des tâches cron.

Alors, voici l'énigme. Comment get un job cron nocturne pour s'exécuter en tant qu'user shell pour supprimer les files de plus d'une semaine dans le directory de l'user SFTP, avec les privilèges de l'administrateur?

Editez le file /etc/sudoers (utilisez visudo !) Et ajoutez une input qui permet à l'user du shell d'avoir suffisamment de privilèges pour exécuter une command spécifique, sans avoir à entrer un mot de passe. Si vous utilisez un script, assurez-vous que le script ne peut pas être édité par quelqu'un d'autre que root.

Dans /etc/sudoers , où shelluser est le nom d'user du shell:

shelluser ALL=NOPASSWD: /usr/bin/clean-up-sftp-temp-directory

Dans un script de /usr/bin/clean-up-sftp-temp-directory , vous pouvez append quelque chose comme:

 #!/bin/sh rm -f /home/sftpuser/will-be-deleted/* 

Après avoir rendu le script exécutable, vous devriez pouvoir appeler sudo clean-up-sftp-temp-directory et l'append au crontab de l'user du shell.