saslpasswd2
Postfix에서 사용하고 ( saslpasswd2/LibSasl: 2.1.26 )을 사용하여 생성된 여러 CentOS 7 시스템에 SASL 데이터베이스가 있습니다 . Berkeley DB(해시, 버전 9, 기본 바이트 순서) 형식입니다.
개발 시스템을 Arch(최근 Solus에서)로 변경한 이후로 더 이상 업데이트 스크립트를 사용하여 이와 같은 데이터베이스 업데이트(CentOS에서 동기화)를 테스트할 수 없습니다.
$ echo "pass123" | /usr/sbin/saslpasswd2 -p -c -f sasldb2 -u some.domain [email protected]
saslpasswd2: generic failure
Arch의 버전은 saslpasswd2
2.1.27이며 CentOS와 Arch 시스템 모두에 설치됩니다 libdb 5.3
. sasldb2 db 파일을 처음부터 생성하면 CentOS 7에서는 Berkeley 형식, Arch에서는 GNU dbm 형식의 데이터베이스가 제공됩니다.
rsync 동기화 시 먼저 데이터베이스를 변환하도록 개발 머신을 변경할 수도 있고, saslpasswd2가 BerkeleyDB에 대한 지원을 제거했다는 기록이 있으면 CentOS 머신을 업데이트할 수도 있습니다. 하지만 왜 이런 일이 발생하는지 더 잘 이해합니다. 아마도 Berkeley Db를 지원하도록 Arch를 수정할 수도 있습니다.saslpasswd2
이 일반적인 오류의 원인은 무엇이며 어떻게 해결할 수 있습니까?
(파일은 쓰기 가능합니다. 두 컴퓨터의 해시를 비교했습니다.)
답변1
나는 이 문제에 다시 직면하여 처음부터 libsasl을 컴파일했습니다(https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-2.1.28/cyrus-sasl-2.1.28.tar.gz). berkeleydb 형식 saslpasswd2
(및 `sasldblistusers2)을 지원하는 것이 좋습니다(tar 아카이브의 doc/legacy/install.html에 따라) .