我有一个电子邮件服务器设置为对虚拟用户使用dovecot:
passdb {
driver = passwd-file
args = username_format=%n /etc/vmail/%d/users
}
userdb {
driver = static
args = uid=109 gid=111 home=/home/vmail/%d/%n
}现在我需要为一些用户设置存储配额。显然,这在static驱动程序中是不可能的,所以我认为启用它的最简单方法是切换到passwd-file。然而,我很难让它真正发挥作用。
使用与上面相同的passdb和
userdb {
driver = passwd-file
args = username_format=%n /etc/vmail/%d/users
default_fields = uid=vmail gid=vmail home=/home/vmail/%d/%n
}93.184.216.34我得到以下错误:
dovecot: imap: Error:身份验证用户未从userdb中找到,auth查找id=345505793 (client-pid=30121 client-id=1)
我尝试了许多变体,并阅读了包括AuthDatabase/PasswdFile在内的dovecot的许多页面,但我似乎无法正确地解释文档。
static配置转换为passwd-file?/etc/vmail/%d/users文件采用标准格式。
user:{SHA512}…下面是这些设置的dovecot userdb输出:
userdb {
args = username_format=%n /etc/vmail/%d/users
auth_verbose = default
default_fields = uid=vmail gid=vmail home=/home/vmail/%d/%n
driver = passwd-file
name =
override_fields =
result_failure = continue
result_internalfail = continue
result_success = return-ok
skip = never
}发布于 2019-05-08 19:05:18
我错误地认为,除了user和password以外的字段是可选的,因为default_fields会处理这些字段。
实际上,文献资料状态(强调地雷)
密码文件是格式如下:
user:password:uid:gid:(gecos):home:(shell):extra_fields用于密码数据库,只要有用户和密码字段就足够了。对于用户数据库,您需要设置uid、gid,最好也设置home (参见VirtualUsers)。(gecos)和(shell)字段被Dovecot使用。
所以这些字段实际上是强制性的。但是,由于它们已经由default_fields设置,所以它们可以是空的:
user:{SHA512}pwd:::我认为这是偶然的,因为唯一的工作帐户是我正在测试配额的帐户(使用每个用户userdb_quota_rule额外字段)…。
doveadm user user@example.org对于调试此问题也非常有用。
发布于 2020-11-15 19:57:33
为了补充您的答案,您只需要在密码字段之后使用两个冒号即可获取default_values中的userdb。
/etc/dovecot/local.conf
-----------------------
passdb {
driver = passwd-file
args = scheme=CRYPT username_format=%u /etc/dovecot/passwd
}
userdb {
driver = passwd-file
args = username_format=%u /etc/dovecot/passwd
default_fields = uid=vmail gid=vmail home=/srv/vmail/%u
# driver = static
# args = uid=vmail gid=vmail home=/srv/vmail/%u
}/etc/dovecot/passwd
-------------------
user@example.com:{SHA512}longPasswordHash::使用doveadm进行的验证还提供了主文件夹:
$ doveadm user user@example.com
field value
uid 5000
gid 5000
home /srv/vmail/user@example.com
mail maildir:/srv/vmail/user@example.com/Maildirhttps://serverfault.com/questions/966426
复制相似问题