我正在运行带有 Dovecot 2.2.33 的 Ubuntu 邮件服务器,并使用系统帐户:
passdb {
driver = pam
我有大约 100 个邮件用户。
我想对每个用户实施存储配额,但 Dovecot 文档每个用户的配额配置说:
Passwd 用户数据库不支持额外字段。这就是为什么您不能直接将用户的配额限制设置为 passwd 文件的原因。一种可能性是编写一个脚本,从另一个文件读取配额限制,将其与 passwd 文件合并并生成另一个 passwd 文件,然后您可以将其与 Dovecot 的 Passwd 文件一起使用。
有人有这样的脚本的例子吗?我不清楚文档例如,如何处理密码本身。或者是否存在其他解决方法,而不必迁移到虚拟用户设置来获得每个用户的配额?
答案1
我认为将用户列表与配额配置合并的最简单方法是链接多个用户数据库。
您希望原始查找记住结果并继续,而附加查找仅继续。这样仍将获得成立从原始 passwd 文件中检查状态(用户是否存在),但它将继续检查其他 userdb 查找,其结果合并。
userdb {
driver = passwd
result_success = continue-ok
# result_failure = continue
result_internalfail = return-fail
}
userdb {
driver = passwd-file
args = /etc/dovecot/quotas
result_success = continue
# result_failure = continue
result_internalfail = return-fail
}
# where /etc/dovecot/quotas is a passwd-style file
# only associate usernames and userdb options via the added column (*seven* colons):
user1:::::::userdb_quota_rule=*:bytes=512M
user2:::::::userdb_quota_rule=*:bytes=256M
确保添加合理的默认值,以便未通过该文件自定义配额创建的用户也受到合理的限制。