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."

これ唯一の違い私が知っている限り、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サーバーが正常に認証するのを妨げることを独立して発見しました。

関連情報