我正在尝试将邮件从为
example.com
服务的一台服务器(mail1)复制到另一台服务器(mali2)以及https://doc.dovecot.org/3.0/man/doveadm-sync.1/的文档说我能做到
doveadm sync -u [email protected] ssh -i id_dsa.dovecot [email protected] doveadm dsync-server -u [email protected]
这并不完全清楚,但我猜这里
[email protected]
是一个帐户 mailuser
,ssh
可以用来登录 example.com
(在我的例子中是 mail1
)。
所以我在
mailuser
上创建了 mail1
,验证了 ssh
会让我进入,并尝试运行此:
useracc@mail2:~$ doveadm sync -u [email protected] ssh -i id_dsa.dovecot mailuser@mail1 doveadm dsync-server -u [email protected]
doveadm(useracc): Error: net_connect_unix(/var/run/dovecot/stats-writer) failed: Permission denied
doveadm([email protected]): Fatal: setgid(5000(vmail) from userdb lookup) failed with euid=1000(useracc), gid=0(root), egid=0(root): Operation not permitted (This binary should probably be called with process group set to 5000(vmail) instead of 0(root))
这看起来确实是权限问题,所以我把
sudo
放在它前面,然后再试一次,得到了这个
useracc@mail2:~$ sudo doveadm sync -u [email protected] ssh -i id_dsa.dovecot mailuser@mail1 doveadm dsync-server -u [email protected]
[sudo] password for useracc:
doveadm([email protected])<3916205><>: Error: auth-master: userdb lookup([email protected]): Auth USER lookup failed
doveadm([email protected]): Error: User lookup failed: Internal error occurred. Refer to server log for more information.
dsync-local([email protected])<lAmcH6o/HWYh4QAAbmxPTQ>: Error: read(remote) failed: EOF (version not received)
现在看起来像是
mailuser@mail1
的权限问题,所以我以 mailuser@mail1
的身份登录并尝试了
mailuser@mail1:~$ doveadm dsync-server -u [email protected]
doveadm(mailuser): Error: net_connect_unix(/var/run/dovecot/stats-writer) failed: Permission denied
doveadm([email protected])<3919456><>: Error: auth-master: userdb lookup([email protected]): Auth USER lookup failed
doveadm([email protected]): Error: User lookup failed: Internal error occurred. Refer to server log for more information.
所以这确实是一个权限问题。
该用户没有密码(使用 PubkeyAuthentication),所以我不能在这里做
sudo
。但即使我能做到,我也不知道如何将 sudo
添加到从 mail2
发送的命令中...无论如何,只是为了确保,我使用另一个帐户(没有 sudo
)尝试了相同的命令( root
组的成员)在mail1
上,结果相似(尽管不完全相同):
useracc@mail1:~$ doveadm dsync-server -u [email protected]
doveadm(useracc): Error: net_connect_unix(/var/run/dovecot/stats-writer) failed: Permission denied
doveadm([email protected]): Fatal: setgid(5000(vmail) from userdb lookup) failed with euid=1000(useracc), gid=0(root), egid=0(root): Operation not permitted (This binary should probably be called with process group set to 5000(vmail) instead of 0(root))
然后使用
sudo
运行它,得到一些看起来像正在运行的服务器的终端输出!!!
useracc@mail1:~$ sudo doveadm dsync-server -u [email protected]
[sudo] password for useracc:
VERSION dsync 3 5
Hhostname sync_ns_prefix sync_box sync_box_guid sync_type
.....
所以现在我确定
mailuser@mail1
启动服务器是权限问题,但我无法弄清楚到底需要什么权限?!?我在文档中找不到任何内容。我怀疑我应该以 root
身份登录才能完成此任务...
我想知道是否有人可以向我指出更详细的指南,该指南解释了源计算机和目标计算机上用于与
doveadm
同步邮件的设置?
您在这里没有得到太多回复...
你自己想出来的吗? (我正在尝试做同样的事情。)
谢谢,
-kb