Fix webmail.conf ownership: use lscpd:lscpd instead of cyberpanel:cyberpanel

lscpd worker runs as user lscpd, not cyberpanel. The webmail.conf file
(containing master user credentials) was unreadable by lscpd, causing
master auth to silently fail and fall back to empty password auth.
Also fix ownership on existing installs during upgrade.
This commit is contained in:
usmannasir
2026-03-06 16:24:42 +05:00
parent 485dd27257
commit 7fe521e1b3
2 changed files with 7 additions and 2 deletions

View File

@@ -776,7 +776,7 @@ protocol sieve {
with open('/etc/cyberpanel/webmail.conf', 'w') as f:
json_module.dump(webmail_conf, f)
os.chmod('/etc/cyberpanel/webmail.conf', 0o600)
subprocess.call(['chown', 'cyberpanel:cyberpanel', '/etc/cyberpanel/webmail.conf'])
subprocess.call(['chown', 'lscpd:lscpd', '/etc/cyberpanel/webmail.conf'])
# Patch dovecot.conf if master passdb block missing
dovecot_conf_path = '/etc/dovecot/dovecot.conf'

View File

@@ -3009,7 +3009,7 @@ protocol sieve {
with open('/etc/cyberpanel/webmail.conf', 'w') as f:
json.dump(webmail_conf, f)
os.chmod('/etc/cyberpanel/webmail.conf', 0o600)
subprocess.call(['chown', 'cyberpanel:cyberpanel', '/etc/cyberpanel/webmail.conf'])
subprocess.call(['chown', 'lscpd:lscpd', '/etc/cyberpanel/webmail.conf'])
# Patch dovecot.conf if master user config not present
dovecot_conf_path = '/etc/dovecot/dovecot.conf'
@@ -3045,6 +3045,11 @@ passdb {
'Webmail migrate', shell=True
)
# Fix webmail.conf ownership for lscpd (may be wrong on existing installs)
if os.path.exists('/etc/cyberpanel/webmail.conf'):
subprocess.call(['chown', 'lscpd:lscpd', '/etc/cyberpanel/webmail.conf'])
os.chmod('/etc/cyberpanel/webmail.conf', 0o600)
# Restart Dovecot
subprocess.call(['systemctl', 'restart', 'dovecot'])