每周清空另一个用户拥有的目录

每周清空另一个用户拥有的目录

我设置了一个临时目录,用户可以在其中放置他们需要通过 HTTP 发送给其他用户的任何文件。该目录的所有者是 SFTP 用户,无法运行 cron 作业。

我有一个 shell 用户可以运行 cron 作业,但无权编辑 SFTP 用户目录中的文件。

我有一个管理员用户,可以在使用 sudo 时访问 SFTP 用户的目录,但无法(阅读:我真的不想)运行 cron 作业。

所以,这就是难题。如何以 shell 用户身份运行夜间 cron 作业,以删除 SFTP 用户目录中 1 周前的文件,并具有管理员用户的权限?

答案1

编辑该/etc/sudoers文件(使用visudo!)并添加一个条目,该条目允许 shell 用户拥有足够的权限来运行特定命令,而无需输入密码。如果您使用脚本,请确保除 root 之外的任何人都无法编辑该脚本。

在 中/etc/sudoers,其中shelluser是 shell 用户名:

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

/usr/bin/clean-up-sftp-temp-directory脚本中,您可以添加以下内容:

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

使脚本可执行后,您应该能够调用sudo clean-up-sftp-temp-directory它并将其添加到 shell 用户的 crontab 中。

相关内容