動いたのでリストア手順をメモ。バックアップがある前提ですので、とってない人は…。
- Server.app から Open Directory を選択。
- 止まってるようなら動かす
- -を押して潰す
- 下記コマンドを入力してリストア
sudo slapconfig -restoredb /PATH/TO/OPEN/DIRECTORY/SPARSE/IMAGE/FILE
- 何故か Dovecot だけ SSO 出来ないので強引にユーザーアカウント作り直し
- 適当なツールを使って現行の GeneratedUID をメモ
e.g., dscl /LDAPv3/127.0.0.1 -read /Users/goro|grep -i generateduid
- 適当なツールを使って該当ユーザーを削除
- 適当なツールを使って同じ ID でユーザーを作成
- 適当なツールを使って、 GeneratedUID をさっきメモしたやつに上書き
e.g., dscl /LDAPv3/127.0.0.1 -change /Users/goro GeneratedUID Old-GUID New-GUID
とこんな具合で SSO が動くようになりました。が、アップグレードでなにか根本的な間違いを犯していたような気がしないでもない。間違いを起こしようのないインターフェースだったけどね…
ちなみにバックアップは以前書いたように
serveradmin dirserv:command = backupArchive
で取得したものですが、ちゃんと slapconfig でリストア出来ました。なお、バックアップ自体も(珍しくドキュメントに書いてありますが)
sudo slapconfig -backupdb /PATH/TO/OPEN/DIRECTORY/SPARSE/IMAGE/FILE
で取れるので、そのほうが良さそう、というか serveradmin は obsolete ってワケでもないでしょうけど置き場所が変わって使い勝手が悪くなってるので、 Open Directory のバックアップという意味では slapconfig 使うべきでしょうね。