我目前正在设置一台机器,它涉及来自动态后端(MySQL 数据库)的大量用户帐户。我已成功设置系统,以便它使用该后端进行所有与帐户相关的操作(身份验证、会话、密码管理等),但现在我想为所有这些用户设置配额。
现在,当谈到 Linux 上的配额时,我通常会使用配额文件:
- 激活给定文件系统的配额。
aquota.user
在 FS 的根目录下创建文件,然后重新挂载。- 使用
quotacheck
、quotaon
、quotaoff
和edquota
配置一切。
现在,这里的问题是这些配额文件是静态的,而我的许多 UNIX 用户都是动态存储在数据库中的。这意味着当通过此后端添加用户时,我需要立即对他实施配额(也存储在数据库中)。由于可能随时添加新用户,我真的不想每次都连接到服务器亲自编辑新用户的配额信息……
有没有办法将配额信息存储在动态后端,就像其他类型的帐户相关信息一样?或者有没有更“常见/典型”的方法来实现这样的结果,而我还没有想到?
(背景介绍)这些存储在 MySQL 数据库中的用户拥有自己的主目录,并且可以通过 FTP 访问它。他们存储的任何内容都可以通过 Web 服务器(共享主机)访问,虽然可以使用 PHP 脚本,但这些脚本以其所有者的身份(suPHP)运行。关键是,PureFTPd 的配额文件 ( .ftpquota
) 也属于连接用户:虽然仍然无法通过 FTP 删除该文件,但可以通过以类似权限运行的 PHP 脚本来完成。因此,我正在寻找一种更“可靠”的方法来实施配额,即不通过 FTP 服务器,因为 FTP 服务器可能会被欺骗而授予比最初授予的更多的磁盘空间。
此处的机器是 Linux Debian Wheezy,运行 PureFTPd 作为 FTP 服务器,Apache 作为 Web 服务器。帐户存储在 MySQL 数据库中,并通过libnss-mysql
(帐户信息检索)和pam-mysql
(帐户管理)链接到系统。用户家中的一切都属于该用户,因此该用户可以更改。