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に従って)。