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 e77ade4872
commit 918a42422c
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'])