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."
これ唯一の違い私が知っている限り、2つの実行モードの違いは、1つはsaslauthd
フレームワークによって始まり、svcadm
もう1つはコマンドラインから始まるということです。ただし、ユーザー(root
-$
プロンプトにもかかわらず)は同じで、パラメータ(-V
および除外-d
)も同じです。それでは、最初のケースではsaslauthd
認証は行われませんが、2番目のケースでは認証が発生するのはなぜですか?
上記のコマンドは、リーン領域で実行されます。
切り替えると、すべてがうまく機能します。パスワードメカニズムを使いたいけどサスデータベース。
答え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
これら2つのファイルがある場合は動作します。私はそれらが所有権によって生成されることを知っていますが、root
これがおそらく所有権ではなく権限であっても、Cyrusサーバーが正常に認証するのを妨げることを独立して発見しました。