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 서버가 성공적으로 인증하는 것을 방해한다는 것을 독립적으로 발견했습니다.