saslauthd 在“独立”运行时有效,但在由 OmniOS svcadm 运行时无效

saslauthd 在“独立”运行时有效,但在由 OmniOS svcadm 运行时无效

如果我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
...

[切换到另一个tty]

u@h:w$ /opt/ooce/sbin/testsaslauthd -p topsikrit -u imapuser
0: OK "Success."

唯一的区别据我所知,两种运行模式之间的区别saslauthd在于,一种是由框架启动svcadm,另一种是从命令行启动。但是用户(root-- 尽管$提示中的 )是相同的,并且参数(除了-V-d)也相同。那么为什么在第一种情况下不会saslauthd进行身份验证,但在第二种情况下会进行身份验证呢?

上述命令是在稀疏区域中运行的。

如果我切换到,一切都会正常进行密码机制,但我更喜欢使用萨斯数据库

答案1

如果这对其他人有帮助,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 服务器成功进行身份验证;尽管答案可能是权限,而不是所有权。

相关内容