我负责管理定制软件即服务 (SAAS) CMS 和电子商务系统的托管。该系统由 HAproxy 实例后面的 LAMP 服务器集群提供支持,每个客户/域在集群和 LDAP 中都有自己的 unix 帐户。每个客户购买一定数量的数据存储,我们使用 cPanel 服务器进行管理,因此配额由标准 Linux 内核/NFS 配额强制执行。
我希望能够在客户的 Web 管理仪表板中提供磁盘空间使用情况统计信息。在 LAMP 集群上,我可以以 root 身份运行/usr/bin/quota domain.name
以获取任何给定域使用的磁盘空间。但是我们的 Apache 实例以 UID 运行www-data
。
允许www-data
运行是否安全?sudo /usr/bin/quota
NOPASSWD
答案1
如果您的配置sudoers
确保/usr/bin/quota
仅有的www-data
允许以 root 权限运行的东西,那么是的,这听起来相当安全。
然而,这样做的风险仍然大于需要。更安全的方法是设置一个作业来定期(例如,每 1-5 分钟)检索此信息并将其输出到具有读取权限的cron
文件中。www-data
答案2
Miles 的回答是正确的。正确的方法是将一些任务队列系统结合到你的应用程序中,然后工作人员检查任务队列以查找要运行的作业。他们可以每秒检查一次,并更好地控制他们以何种用户身份运行。这样你就可以避免 cron 延迟。