如果我通过saslauthd运行svcadm,它就不能工作,但是如果我从命令行运行它,它就会运行。
u@h:w$ svcadm enable saslauthd
u@h:w$ ps -ef|grep sasl
root 17192 14073 0 05:50:12 ? 0:00 /opt/ooce/sbin/saslauthd -a sasldb -c -m /var/run/saslauthd
root 17194 17102 0 05:50:31 pts/3 0:00 grep sasl
u@h:w$ /opt/ooce/sbin/testsaslauthd -p topsikrit -u imapuser
0: NO "authentication failed"
u@h:w$ svcadm disable saslauthd
u@h:w$ /opt/ooce/sbin/saslauthd -a sasldb -c -d -V -m /var/run/saslauthd
saslauthd[17211] :num_procs : 5
saslauthd[17211] :mech_option: NULL
saslauthd[17211] :run_path : /var/run/saslauthd
saslauthd[17211] :auth_mech : sasldb
...u@h:w$ /opt/ooce/sbin/testsaslauthd -p topsikrit -u imapuser
0: OK "Success."据我所见,saslauthd的两种运行模式之间唯一的区别是,一种是由svcadm框架启动的,另一种是从命令行启动的。但是用户(root --尽管提示符中有$ )是相同的,参数(除了-V和-d)也是一样的。那么,为什么saslauthd在第一种情况下不进行身份验证,而在第二种情况下进行身份验证?
上面的命令在稀疏区域中运行。
如果切换到passwd机制,一切都会正常工作,但我更喜欢使用sasldb。
发布于 2022-05-09 22:33:47
如果这对其他人有帮助,SASL DB是:
# ls -l /var/opt/ooce/sasl2/
total 172
-rw-r----- 1 cyrus cyrus 32768 May 9 03:30 sasldb2
-rw-r----- 1 cyrus cyrus 8192 May 9 22:30 sasldb2-lock如果您chmod go+rw这两个文件,它就能工作。我知道它们是由root创建的,但我发现这可以阻止Cyrus服务器成功地进行身份验证;尽管答案可能是权限,而不是所有权。
https://unix.stackexchange.com/questions/701916
复制相似问题