Hi everyone!,

I'm trying to migrate a sympa installation (sympa is a perl written
mailing list manager) from a Linux system into an OpenBSD one, and I'm
getting into a strange problem.

The way a message reaches the sympa is trough a C written, setuid
binary called "queue" which is setuid to sympa's user. The MTA pipes
the message into this binary, which its only mission is to create a
file into a spool direcotry, where the main sympa process can read it.

The problem here is that "queue" in OpenBSD isn't creating files with
sympa ownership, so the main process can't read them(they are owned by
"daemon").

I have done a small test program to be run in both systems, and thats
what I get:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main (void) {
       int fd;
       char msg1[] = "Cannot open file\n";

       umask(027);
       if (!(fd = open("/tmp/testfile", O_CREAT| O_WRONLY , 0600))) {
               write(2,msg1, sizeof(msg1));
       }
       close(fd);
}

---- OpenBSD System
# make test
cc -O2 -pipe    -o test test.c
# chown _sympa._sympa test
# chmod u+s test
# ./test
# ls -l
total 32
-rw-------  1 _sympa   wheel   2984 Nov 30 16:02 ayud
drwx------  2 _clamav  wheel    512 Dec  1 09:30 clamav-1cd2ff8e8aea8f7f
-rwsr-xr-x  1 _sympa   _sympa  6641 Dec  1 09:31 test
-rw-r--r--  1 root     wheel    255 Dec  1 09:29 test.c
-rw-------  1 root     wheel      0 Dec  1 09:30 testfile

------------------------------------------------------------
[EMAIL PROTECTED] tmp]# make test
cc     test.c   -o test
[EMAIL PROTECTED] tmp]# chown sympa.sympa test
[EMAIL PROTECTED] tmp]# chmod u+s test
[EMAIL PROTECTED] tmp]# ./test
[EMAIL PROTECTED] tmp]# ls -l
total 16
-rwsr-xr-x    1 sympa    sympa       14092 dic  1 09:33 test
-rw-r--r--    1 root     root          312 dic  1 09:27 test.c
-rw-------    1 sympa    root            0 dic  1 09:34 testfile

It's ok this different behaviour? or may be there is something that
I'm doing wrong?

Thanks in advance.

Reply via email to