GeoNetAgent, LDAPWeb, server-audit, server-connection
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

37 lines
1.4 KiB

#!/bin/bash
# Fix SOGo for mailcow-auth mailboxes (authsource=mailcow), especially new domains.
# Run after: new domain/mailbox, password change in Admin UI, or SOGo Unauthorized.
# Usage: fix-sogo-domain.sh [user@domain.tld]
set -euo pipefail
STACK='/opt/stacks/mailcow'
USER="${1:-admin@gisportal.id}"
echo "== Sync c_password from mailbox (authsource=mailcow) =="
docker exec mailcowdockerized-mysql-mailcow-1 bash -lc '
mysql mailcow -uroot -p"$MYSQL_ROOT_PASSWORD" -e "
UPDATE _sogo_static_view s
INNER JOIN mailbox m ON m.username = s.c_name
SET s.c_password = m.password
WHERE m.authsource = \"mailcow\" AND m.active IN (\"1\",\"2\");
"
'
echo "== Verify: $USER =="
docker exec mailcowdockerized-mysql-mailcow-1 bash -lc "
mysql mailcow -uroot -p\"\$MYSQL_ROOT_PASSWORD\" -N -e \"
SELECT 'mailbox', LEFT(password,55) FROM mailbox WHERE username='${USER}';
SELECT 'sogo', LEFT(c_password,55) FROM _sogo_static_view WHERE c_name='${USER}';
\"
"
echo "== Restart SOGo =="
cd "$STACK"
docker compose restart sogo-mailcow
sleep 8
echo "== SOGo domains =="
docker exec mailcowdockerized-sogo-mailcow-1 grep -E '<key>(geonet|gisportal|gegeo)' /var/lib/sogo/GNUstep/Defaults/sogod.plist || \
docker exec mailcowdockerized-sogo-mailcow-1 grep '<key>.*\.id</key>' /var/lib/sogo/GNUstep/Defaults/sogod.plist
echo ""
echo "DONE. Login SOGo with Mailcow mailbox password (NOT AD password for authsource=mailcow)."