[Dovecot] [PATCH] drop root privileges on solaris, request for testing

Chris Wakelin c.d.wakelin at reading.ac.uk
Thu Dec 18 18:03:55 EET 2008


Andrey Panin wrote:
>> I've applied the patch to Dovecot 1.1.7 (with minor change to
>> configure.in) on Solaris 10 sparc 64-bit but Dovecot fails on startup
>>
>> dovecot: Dec 18 12:45:47 Info: Dovecot v1.1.7 starting up
>> dovecot: Dec 18 12:45:47 Fatal: auth(default): initgroups(root, 0)
>> failed: Not owner
>> dovecot: Dec 18 12:45:47 Fatal: Auth process died too early - shutting down
>>
>> The same config with vanilla Dovecot 1.1.7 works fine, so I'm guessing
>> it dropped too many privileges.
> 
> Can you try running "ppriv -D dovecot" to determine which privilege is missing ?
>  

Difficult as the dovecot master process dies as soon as the dovecot-auth
process ends. I ran a "truss -f" on it though and found:

26409:  setppriv(PRIV_SET, PRIV_PERMITTED, {0250004b0400000000000000}) = 0
26409:  setppriv(PRIV_SET, PRIV_EFFECTIVE, {0250004b0400000000000000}) = 0

...

26411:  setgroups(11, 0x0006C290)                       Err#1 EPERM
[proc_setid]
26411:  write(2, "01 F i n i t g r o u p s".., 40)      = 40
26411:  _exit(89)

>From the setgroups manpage:

ERRORS
     The getgroups() and setgroups() functions will fail if:
...
     EPERM           The  {PRIV_PROC_SETID}  privilege   is   not
                     asserted in the effective set of the calling
                     process.

I tried omitting PRIV_PROC_SETID from the list in capabilities-solaris.c
but that doesn't seem to make much difference except

19468:  setppriv(PRIV_SET, PRIV_PERMITTED, {0250004b0000000000000000}) = 0
19468:  setppriv(PRIV_SET, PRIV_EFFECTIVE, {0250004b0000000000000000}) = 0

I don't know much about process privileges, but could it be that the
dovecot-auth subprocess isn't inheriting the privileges from the master
process?

I can send you the whole truss files if you like.

Best Wishes,
Chris

-- 
--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-
Christopher Wakelin,                           c.d.wakelin at reading.ac.uk
IT Services Centre, The University of Reading,  Tel: +44 (0)118 378 8439
Whiteknights, Reading, RG6 2AF, UK              Fax: +44 (0)118 975 3094


More information about the dovecot mailing list