Thank you for your response. It helped a lot. The contents of the conf file is:
connect = host=localhost dbname=[db] user=[*] password=[*] user_query = SELECT CONCAT('maildir:', domain.home_dir, '/mail/', mailbox.maildir, 'mail') as mail, domain.uid, domain.gid, CONCAT('quota=maildir:storage=', mailbox.quota) AS quota, CONCAT(domain.home_dir, '/mail/', mailbox.maildir) as home FROM domain JOIN mailbox ON domain.domain = mailbox.domain WHERE mailbox.username = '%u';
[*] is not vmail :)
Ok there are two entries in the domain table; one for "ALL" uid & gid =
null and one for paranoidandroid.co.za having uid and gid of 501. I'm
not sure how these entries are created, I guess it is by mail admin.
Should I hack it to 104? or make a new entry? If new entry, then through
mail admin, and how?
My apologies for all the questions I'm new to Linux and would really like to learn...
Best regards, Andre
Timo Sirainen wrote:
On Aug 14, 2009, at 9:01 AM, André Labuschagné wrote:
*Aug 13 10:13:52 li73-31 dovecot: deliver(andre at paranoidandroid.co.za): Fatal: setgid(501(paranoidandroid)) failed with euid=104(vmail), gid=106(vmail), egid=106(vmail): Operation not permitted*
This means that you start deliver as vmail:vmail (which I guess is intended), but userdb lookup says that this user should have GID paranoidandroid. So deliver tries to change the proces's GID, but isn't allowed to because it's not running as root.
userdb: driver: sql args: /etc/dovecot/dovecot_sql_userdb.conf
What do you have in user_query? Is it intended that different users have different gids (and maybe uids)?