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.