Environment:
-
OS: Ubuntu 22.04.5 LTS (Fresh Install)
-
Storage: Dedicated ZFS dataset mounted at
/opt/zextras -
Version: Carbonio CE (Current 2026 Repository Build as of 3/22/26)
-
Component:
carbonio-directory-server/ OpenLDAP
The Issue:
During a fresh installation, carbonio-bootstrap fails at the "Initializing ldap..." phase with the error Starting openldap...failed.
Running the LDAP daemon manually in debug mode via: sudo Reveals the daemon is crashing immediately with:
su - zextras -c "/opt/zextras/common/libexec/slapd -d 1"daemon:
bind(7) failed errno=13 (Permission denied)
The Root Cause:
The unprivileged zextras user is attempting to bind OpenLDAP to port 389 (a privileged port < 1024). In recent builds, the slapd binary was moved to /opt/zextras/common/libexec/slapd. The .deb package's post-installation script fails to grant the required cap_net_bind_service capability to the binary at this new path.
Running the legacy zmfixperms script does not resolve this, as it only fixes standard POSIX file permissions, not kernel capabilities.
Steps to Reproduce:
-
Mount a dedicated drive/dataset to
/opt/zextrasandchown 999:999. -
Install the package via
apt install.
carbonio-ce -
Run
carbonio-bootstrap. -
The bootstrap crashes during LDAP initialization because the daemon is killed by the kernel when attempting to bind to port 389.
The Fix / Workaround:
Before running carbonio-bootstrap, manually grant the required network capability to the new binary path:
Bash
sudo setcap 'cap_net_bind_service=+ep' /opt/zextras/common/libexec/slapd
Once applied, carbonio-bootstrap finishes flawlessly.
Recommendation for Zextras: Please update the post-install hooks in the carbonio-directory-server Debian package to ensure setcap is successfully applied to /opt/zextras/common/libexec/slapd, regardless of underlying storage mounts.
It appears that you also have to do the same for nginx as well.
sudo setcap 'cap_net_bind_service=+ep' /opt/zextras/common/sbin/nginx
This particular build is buggy enough that I'm about to abandon the platform. I'm loathe to purchase this platform for two reasons now:
1. I'm sufficient a geek that I should not have to purchase via a VAR. Furthermore, I would not become a VAR with quotas for sales attached. VAR stands for Value Added Reseller. I would not be a VAR is I came to the table with only one solution, and quotas force such decisions.
2. If this can't work in CE mode, what makes me think the commercial version is any better. I could just purchase Zimbra.
