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