[Dovecot] (straced) FreeBSD - dovecot: We couldn't drop root group privileges

Igor B. Bykhalo goshik at binep.ac.ru
Tue Aug 24 18:52:39 EEST 2004


In addition to my previous mail:

Here is strace of dovecot-auth

> 8103  gettimeofday({1093361203, 316780}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=9, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 8, 4999) = 1
> 8103  gettimeofday({1093361207, 953058}, {0, 0}) = 0
> 8103  read(9, "\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0", 4092) = 16
> 8103  write(9, "\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
> 8103  gettimeofday({1093361207, 953333}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=9, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 8, 362) = 1
> 8103  gettimeofday({1093361207, 953510}, {0, 0}) = 0
> 8103  read(9, "\2\0\0\0\1\0\0\0\20\0\0\0\0goshik\0cug83air", 4076) = 28
> 8103  geteuid(0x2821d7ac)               = 0
> 8103  stat("/etc/spwd.db", {st_mode=S_IFREG|0600, st_size=57344, ...}) = 0
> 8103  open("/etc/spwd.db", O_RDONLY)    = 13
> 8103  fcntl(13, F_SETFD, FD_CLOEXEC)    = 0
> 8103  read(13, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20\0\0\0\0\f\0\0\1\0\0\0"..., 260) = 260
> 8103  lseek(13, 28672, SEEK_SET)        = 28672
> 8103  read(13, "L\0\373\17\302\17\275\17u\17o\17\'\17\"\17\347\16\342\16"..., 4096) = 4096
> 8103  close(13)                         = 0
> 8103  write(9, "\1\0\0\0\2\0\0\0\0\0\0\0\377\377\377\377\7\0\0\0", 20) = 20
> 8103  write(9, "goshik\0", 7)           = 7
> 8103  gettimeofday({1093361207, 956126}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=9, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 8, 359) = 1
> 8103  gettimeofday({1093361207, 956281}, {0, 0}) = 0
> 8103  recvfrom(0, "\10\0\0\0\1\0\0\0\336\37\0\0", 12, 0, NULL, NULL) = 12
> 8103  geteuid(0x2821d7ac)               = 0
> 8103  stat("/etc/spwd.db", {st_mode=S_IFREG|0600, st_size=57344, ...}) = 0
> 8103  open("/etc/spwd.db", O_RDONLY)    = 13
> 8103  fcntl(13, F_SETFD, FD_CLOEXEC)    = 0
> 8103  read(13, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20\0\0\0\0\f\0\0\1\0\0\0"..., 260) = 260
> 8103  lseek(13, 28672, SEEK_SET)        = 28672
> 8103  read(13, "L\0\373\17\302\17\275\17u\17o\17\'\17\"\17\347\16\342\16"..., 4096) = 4096
> 8103  close(13)                         = 0
> 8103  write(0, "\10\0\0\0\1\0\0\0\351\3\0\0\0\0\0\0\0\0\0\0\7\0\0\0\16"..., 67) = 67
> 8103  gettimeofday({1093361207, 960232}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=9, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 8, 355) = 1
> 8103  gettimeofday({1093361207, 960600}, {0, 0}) = 0
> 8103  read(9, "", 4048)                 = 0
> 8103  close(9)                          = 0
> 8103  gettimeofday({1093361207, 960834}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 7, 355) = 0
> 8103  gettimeofday({1093361208, 326562}, {0, 0}) = 0
> 8103  gettimeofday({1093361208, 326643}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 7, 0) = 0
> 8103  gettimeofday({1093361208, 326799}, {0, 0}) = 0
> 8103  gettimeofday({1093361208, 326888}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 7, 4999) = 1
> 8103  gettimeofday({1093361208, 620235}, {0, 0}) = 0
> 8103  accept(3, {sa_family=AF_UNIX, path=@}, [16]) = 9
> 8103  fcntl(9, F_GETFL)                 = 0x6 (flags O_RDWR|O_NONBLOCK)
> 8103  fcntl(9, F_SETFL, O_RDWR|O_NONBLOCK) = 0
> 8103  fstat(9, {st_mode=S_IFSOCK|0666, st_size=4, ...}) = 0
> 8103  lseek(9, 0, SEEK_CUR)             = -1 ESPIPE (Illegal seek)
> 8103  getsockname(9, {sa_family=AF_UNIX, path="/var/run/dovecot/login/def0ыїїф     "}, [28]) = 0
                                                                        ^^^^^^^^^^^^^^^^^
Oops!                                                                   What's this?

> 8103  write(9, "\247\37\0\0\1\0\0\0", 8) = 8
> 8103  gettimeofday({1093361208, 620917}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=9, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL, revents=POLLIN}], 8, 4705) = 1
> 8103  gettimeofday({1093361208, 621073}, {0, 0}) = 0
> 8103  read(9, "\2320\0\0", 4096)        = 4
> 8103  gettimeofday({1093361208, 621228}, NULL) = 0
> 8103  poll([{fd=3, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=0, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=12, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=8, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=11, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}, {fd=9, events=POLLIN|POLLPRI|POLLERR|POLLHUP|POLLNVAL}], 8, 4704) = 0

And here is how paths in /var are looking:

> /var/mail:
> total 2
> -rw-------  1 dovecot  dovecot    0 23 Aug 20:32 dovecot
> drwxr-xr-x  2 goshik   network  512 24 Aug 18:34 goshik
> -rw-------  1 postfix  postfix    0 23 Aug 16:59 postfix
> 
> /var/run/dovecot/login:
> total 0
> srw-rw----  1 root  dovecot  0 24 Aug 18:58 default

I also straced dovecot process, but it showed no visible (to me) errors.

TIA,
Igor




More information about the dovecot mailing list