Prev: ?best practice to stop " root+:|" exploits
Next: Filter before delivery without procmail or maildrop
From: Jamal Mubarak on 9 May 2010 19:12 On May 9, 2010, at 5:56 PM, Wietse Venema wrote: > This involves getting a trace of system calls (arguments and results) > when the error happens. > > Some systems capture a system call trace with commands like: > > ktrace -f /file/name -d command > strace -o /file/name -f command > truss -o /file/name -f command > > But, things may be different on MacOS. > > Above, "command" is the command that starts the entire printing > system. On some systems, "command" would be: > > sh /etc/rc.d/cups start > sh /etc/init.d/cups start Thanks for replying! I did try "dtruss -n sendmail". It gave me a large output which I compared with a regular email that did not fail. It is hard for me to decipher but here is a part of it. The rest is given below: 11901/0x3ecda: fstat64(0x3, 0x7FFF5FBFF650, 0xFC080) = 0 0 11901/0x3ecda: close(0x3) = 0 0 11901/0x3ecda: getrlimit(0x1008, 0x7FFF5FBFEE10, 0x7FFF82755CCC) = 0 0 11901/0x3ecda: open_nocancel("/etc/sysinfo.conf\0", 0x0, 0x1B6) = -1 Err#2 11901/0x3ecda: fork() = 11902 0 11902/0x3ecdc: __semwait_signal(0x803, 0x0, 0x1) = -1 Err#60 11901/0x3ecda: read(0x4, "\333\006\0", 0x1000) = 0 0 11901/0x3ecda: close(0x4) = 0 0 11901/0x3ecda: wait4(0x2E7E, 0x7FFF5FBFF73C, 0x0) = 11902 0 11901/0x3ecda: write(0x2, "sendmail: warning: command \"/usr/sbin/postdrop -r\" exited with status 1\n\0", 0x48) = 72 0 11901/0x3ecda: gettimeofday(0x7FFF5FBFF3C0, 0x0, 0x10) = 1273446059 0 11901/0x3ecda: getuid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11901/0x3ecda: getgid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF220, 0x2, 0x7FFF5FBFF230) = 0 0 11901/0x3ecda: write(0x2, "sendmail: fatal: _lp(26): unable to execute /usr/sbin/postdrop -r: Unknown error: 0\n\0", 0x54) = 84 0 11901/0x3ecda: getuid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11901/0x3ecda: getgid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF240, 0x2, 0x7FFF5FBFF250) = 0 0 I am frankly unable to understand this. Note that _lp has the user id of 26. Should I do it for cups or the CUPS notifier? Any help would be appreciated. Thanks, Jamal ------------------Full output------------------------------------------ PID/THRD SYSCALL(args) = return 11901/0x3ecda: getpid(0x7FFF5FBFF7C0, 0x7FFFFFE00050, 0x0) = 11901 0 11901/0x3ecda: open_nocancel("/dev/urandom\0", 0x0, 0x0) = 3 0 11901/0x3ecda: read_nocancel(0x3, "\277C\270\214\326L\221\361\322.\264_iN\270\266D\335't\313\032\fU\3259\232X\027\250!\030}\336\200z\315H\324\004\016\273\272\031\210!b\347\245@\220<\265\207\001/\t\316+\201\352\274\204\232\"\023|\260l\036\362\322\276\207\231\267\254\350\373\221\234\371\342\237e&\262\336\213S\004\330\377\232\023\260E\2600\325\265\035#\221\300\277\"\372\0", 0x6C) = 108 0 11901/0x3ecda: close_nocancel(0x3) = 0 0 11901/0x3ecda: issetugid(0x100000000, 0x7FFF5FBFFA92, 0x7FFF5FC40530) = 0 0 11901/0x3ecda: geteuid(0x100000000, 0x7FFF5FBFFA92, 0x0) = 26 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD6B0, 0x2, 0x7FFF5FBFD670) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD670, 0x2, 0x7FFF5FBFD70C) = 0 0 11901/0x3ecda: shared_region_check_np(0x7FFF5FBFD878, 0x0, 0x7FFF5FC1DC86) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory\0", 0x7FFF5FBFC9C0, 0x7FFF5FBFD000) = 0 0 11901/0x3ecda: stat64("/usr/lib/libssl.0.9.8.dylib\0", 0x7FFF5FBFC9C0, 0x7FFF5FBFD000) = 0 0 11901/0x3ecda: stat64("/usr/lib/libsasl2.2.dylib\0", 0x7FFF5FBFC9C0, 0x7FFF5FBFD000) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos\0", 0x7FFF5FBFC9C0, 0x7FFF5FBFD000) = 0 0 11901/0x3ecda: stat64("/usr/lib/libpcre.0.dylib\0", 0x7FFF5FBFC9C0, 0x7FFF5FBFD000) = 0 0 11901/0x3ecda: ioctl(0x3, 0x80086804, 0x7FFF5FBFD610) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD410, 0x2, 0x7FFF5FBFD400) = 0 0 11901/0x3ecda: bsdthread_register(0x7FFF8278B75C, 0x7FFF8276C378, 0x2000) = 0 0 11901/0x3ecda: thread_selfid(0x7FFF8278B75C, 0x7FFF8276C378, 0x0) = 257242 0 11901/0x3ecda: open_nocancel("/dev/urandom\0", 0x0, 0x7FFF704ABB20) = 3 0 11901/0x3ecda: read_nocancel(0x3, "\223\242\030\214\037\346\270'\241\233n\v=2\242\223p\360\253GQ\330f/\327`F\324\264\266\002\341l\357\305k\t\001\t\346\355\004\331oD\350\362h\202\320\275@\265d\334\024\275\363\314\237\204\262\237\335\0", 0x40) = 64 0 11901/0x3ecda: close_nocancel(0x3) = 0 0 11901/0x3ecda: mmap(0x0, 0x3000, 0x3, 0x1002, 0x1000000, 0x7FFF00000001) = 0x62000 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD290, 0x2, 0x7FFF5FBFD250) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD250, 0x2, 0x7FFF5FBFD2E8) = 0 0 11901/0x3ecda: getpid(0x7FFF5FBFD1E0, 0x7FFFFFE00050, 0x0) = 11901 0 11901/0x3ecda: open_nocancel("/dev/urandom\0", 0x0, 0x0) = 3 0 11901/0x3ecda: read_nocancel(0x3, "\235s\324\"l\240\304,\260(\311\232+$\266\224\241i\205d,u\243\203m\2265R\bJ\240kT\263\344\303\373\205 <F\253$g\355\v\312\"\343\314\335\003\306\005\320\320Vg\2058\371\242~\251\333\312\017t\330\266q\n\240\336%\033\224l+\304ysSM\3020\262\241W\024g\0202c\245\232u\267Nf\227\022\207\203(\325#\025\0", 0x6C) = 108 0 11901/0x3ecda: close_nocancel(0x3) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD290, 0x2, 0x7FFF5FBFD2BC) = 0 0 11901/0x3ecda: mmap(0x0, 0xD000, 0x3, 0x1002, 0x1000000, 0x1FFFFFFFF) = 0x65000 0 11901/0x3ecda: mmap(0x0, 0xD000, 0x3, 0x1002, 0x1000000, 0x1FFFFFFFF) = 0x72000 0 11901/0x3ecda: mmap(0x0, 0x1000, 0x3, 0x1002, 0x1000000, 0x1FFFFFFFF) = 0x7F000 0 11901/0x3ecda: mmap(0x0, 0x200000, 0x3, 0x1002, 0x7000000, 0x1FFFFFFFF) = 0x80000 0 11901/0x3ecda: munmap(0x100080000, 0x80000) = 0 0 11901/0x3ecda: munmap(0x100200000, 0x80000) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD3F0, 0x2, 0x7FFF5FBFD3B0) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD3B0, 0x2, 0x7FFF704B8680) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD3F0, 0x2, 0x7FFF5FBFD3B0) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD3B0, 0x2, 0x7FFF704B8684) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD3F0, 0x2, 0x7FFF5FBFD3B0) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFD3B0, 0x2, 0x7FFF704B8688) = 0 0 11901/0x3ecda: issetugid(0x7FFF819878AC, 0x7FFF5FBFD4AC, 0x7FFF5FBFF9C0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation\0", 0x7FFF5FBFC050, 0x7FFF5FBFC690) = 0 0 11901/0x3ecda: mmap(0x0, 0x1000000, 0x3, 0x1002, 0x2000000, 0x1FFFFFFFF) = 0x200000 0 11901/0x3ecda: munmap(0x100200000, 0x600000) = 0 0 11901/0x3ecda: munmap(0x101000000, 0x200000) = 0 0 11901/0x3ecda: getuid(0x7FFF5FBFD4DC, 0x7FFF5FBFD4D8, 0x0) = 26 0 11901/0x3ecda: geteuid(0x100107220, 0x11, 0x7FFF702D85C8) = 26 0 11901/0x3ecda: getuid(0x100107220, 0x11, 0x0) = 26 0 11901/0x3ecda: issetugid(0x1, 0x2, 0x100107F30) = 0 0 11901/0x3ecda: getuid(0x7FFF5FBFCCAC, 0x0, 0x0) = 26 0 11901/0x3ecda: stat64("/usr/libexec/cups/notifier\0", 0x7FFF5FBFC240, 0xFC080) = 0 0 11901/0x3ecda: open_nocancel("/usr/libexec/cups/notifier\0", 0x100004, 0x0) = 3 0 11901/0x3ecda: fcntl_nocancel(0x3, 0x2, 0x1) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFB860, 0x2, 0x7FFF704B0658) = 0 0 11901/0x3ecda: fstatfs64(0x3, 0x7FFF5FBFB8B0, 0x0) = 0 0 11901/0x3ecda: getdirentries64(0x3, 0x100825800, 0x1000) = 108 0 11901/0x3ecda: getdirentries64(0x3, 0x100825800, 0x1000) = 0 0 11901/0x3ecda: close_nocancel(0x3) = 0 0 11901/0x3ecda: stat64("/usr/libexec/cups/notifier/Contents\0", 0x7FFF5FBFC200, 0xFFFFFFFF) = -1 Err#2 11901/0x3ecda: stat64("/usr/libexec/cups/notifier/Resources\0", 0x7FFF5FBFC200, 0xFFFFFFFF) = -1 Err#2 11901/0x3ecda: stat64("/usr/libexec/cups/notifier/Support Files\0", 0x7FFF5FBFC200, 0xFFFFFFFF) = -1 Err#2 11901/0x3ecda: stat64("/usr/libexec/cups/notifier\0", 0x7FFF5FBFC2A0, 0xFFFFFFFF) = 0 0 11901/0x3ecda: stat64("/usr/libexec/cups/notifier/mailto\0", 0x7FFF5FBFC4B0, 0x100108E4C) = 0 0 11901/0x3ecda: open("/usr/libexec/cups/notifier/mailto\0", 0x0, 0x1FF) = 3 0 11901/0x3ecda: read(0x3, "\312\376\272\276\0", 0x200) = 512 0 11901/0x3ecda: lseek(0x3, 0x8000, 0x0) = 32768 0 11901/0x3ecda: read(0x3, "\316\372\355\376\a\0", 0x20) = 32 0 11901/0x3ecda: close(0x3) = 0 0 11901/0x3ecda: umask(0x12, 0x10001B361, 0x10002B050) = 63 0 11901/0x3ecda: fstat64(0x0, 0x7FFF5FBFF880, 0x0) = 0 0 11901/0x3ecda: fstat64(0x1, 0x7FFF5FBFF880, 0x0) = 0 0 11901/0x3ecda: fstat64(0x2, 0x7FFF5FBFF880, 0x0) = 0 0 11901/0x3ecda: close(0x3) = -1 Err#9 11901/0x3ecda: close(0x4) = -1 Err#9 11901/0x3ecda: close(0x5) = -1 Err#9 11901/0x3ecda: close(0x6) = -1 Err#9 11901/0x3ecda: close(0x7) = -1 Err#9 11901/0x3ecda: close(0x8) = -1 Err#9 11901/0x3ecda: close(0x9) = -1 Err#9 11901/0x3ecda: close(0xA) = -1 Err#9 11901/0x3ecda: close(0xB) = -1 Err#9 11901/0x3ecda: close(0xC) = -1 Err#9 11901/0x3ecda: close(0xD) = -1 Err#9 11901/0x3ecda: close(0xE) = -1 Err#9 11901/0x3ecda: close(0xF) = -1 Err#9 11901/0x3ecda: close(0x10) = -1 Err#9 11901/0x3ecda: close(0x11) = -1 Err#9 11901/0x3ecda: close(0x12) = -1 Err#9 11901/0x3ecda: close(0x13) = -1 Err#9 11901/0x3ecda: close(0x14) = -1 Err#9 11901/0x3ecda: close(0x15) = -1 Err#9 11901/0x3ecda: close(0x16) = -1 Err#9 11901/0x3ecda: close(0x17) = -1 Err#9 11901/0x3ecda: close(0x18) = -1 Err#9 11901/0x3ecda: close(0x19) = -1 Err#9 11901/0x3ecda: close(0x1A) = -1 Err#9 11901/0x3ecda: close(0x1B) = -1 Err#9 11901/0x3ecda: close(0x1C) = -1 Err#9 11901/0x3ecda: close(0x1D) = -1 Err#9 11901/0x3ecda: close(0x1E) = -1 Err#9 11901/0x3ecda: close(0x1F) = -1 Err#9 11901/0x3ecda: close(0x20) = -1 Err#9 11901/0x3ecda: close(0x21) = -1 Err#9 11901/0x3ecda: close(0x22) = -1 Err#9 11901/0x3ecda: close(0x23) = -1 Err#9 11901/0x3ecda: close(0x24) = -1 Err#9 11901/0x3ecda: close(0x25) = -1 Err#9 11901/0x3ecda: close(0x26) = -1 Err#9 11901/0x3ecda: close(0x27) = -1 Err#9 11901/0x3ecda: close(0x28) = -1 Err#9 11901/0x3ecda: close(0x29) = -1 Err#9 11901/0x3ecda: close(0x2A) = -1 Err#9 11901/0x3ecda: close(0x2B) = -1 Err#9 11901/0x3ecda: close(0x2C) = -1 Err#9 11901/0x3ecda: close(0x2D) = -1 Err#9 11901/0x3ecda: close(0x2E) = -1 Err#9 11901/0x3ecda: close(0x2F) = -1 Err#9 11901/0x3ecda: close(0x30) = -1 Err#9 11901/0x3ecda: close(0x31) = -1 Err#9 11901/0x3ecda: close(0x32) = -1 Err#9 11901/0x3ecda: close(0x33) = -1 Err#9 11901/0x3ecda: close(0x34) = -1 Err#9 11901/0x3ecda: close(0x35) = -1 Err#9 11901/0x3ecda: close(0x36) = -1 Err#9 11901/0x3ecda: close(0x37) = -1 Err#9 11901/0x3ecda: close(0x38) = -1 Err#9 11901/0x3ecda: close(0x39) = -1 Err#9 11901/0x3ecda: close(0x3A) = -1 Err#9 11901/0x3ecda: close(0x3B) = -1 Err#9 11901/0x3ecda: close(0x3C) = -1 Err#9 11901/0x3ecda: close(0x3D) = -1 Err#9 11901/0x3ecda: close(0x3E) = -1 Err#9 11901/0x3ecda: close(0x3F) = -1 Err#9 11901/0x3ecda: close(0x40) = -1 Err#9 11901/0x3ecda: close(0x41) = -1 Err#9 11901/0x3ecda: close(0x42) = -1 Err#9 11901/0x3ecda: close(0x43) = -1 Err#9 11901/0x3ecda: close(0x44) = -1 Err#9 11901/0x3ecda: close(0x45) = -1 Err#9 11901/0x3ecda: close(0x46) = -1 Err#9 11901/0x3ecda: close(0x47) = -1 Err#9 11901/0x3ecda: close(0x48) = -1 Err#9 11901/0x3ecda: close(0x49) = -1 Err#9 11901/0x3ecda: close(0x4A) = -1 Err#9 11901/0x3ecda: close(0x4B) = -1 Err#9 11901/0x3ecda: close(0x4C) = -1 Err#9 11901/0x3ecda: close(0x4D) = -1 Err#9 11901/0x3ecda: close(0x4E) = -1 Err#9 11901/0x3ecda: close(0x4F) = -1 Err#9 11901/0x3ecda: close(0x50) = -1 Err#9 11901/0x3ecda: close(0x51) = -1 Err#9 11901/0x3ecda: close(0x52) = -1 Err#9 11901/0x3ecda: close(0x53) = -1 Err#9 11901/0x3ecda: close(0x54) = -1 Err#9 11901/0x3ecda: close(0x55) = -1 Err#9 11901/0x3ecda: close(0x56) = -1 Err#9 11901/0x3ecda: close(0x57) = -1 Err#9 11901/0x3ecda: close(0x58) = -1 Err#9 11901/0x3ecda: close(0x59) = -1 Err#9 11901/0x3ecda: close(0x5A) = -1 Err#9 11901/0x3ecda: close(0x5B) = -1 Err#9 11901/0x3ecda: close(0x5C) = -1 Err#9 11901/0x3ecda: close(0x5D) = -1 Err#9 11901/0x3ecda: close(0x5E) = -1 Err#9 11901/0x3ecda: close(0x5F) = -1 Err#9 11901/0x3ecda: close(0x60) = -1 Err#9 11901/0x3ecda: close(0x61) = -1 Err#9 11901/0x3ecda: close(0x62) = -1 Err#9 11901/0x3ecda: close(0x63) = -1 Err#9 11901/0x3ecda: geteuid(0x10001B37E, 0x7FFF5FBFF880, 0xFFFFFFFFFFFFFFFF) = 26 0 11901/0x3ecda: getuid(0x10001B37E, 0x7FFF5FBFF880, 0x0) = 26 0 11901/0x3ecda: getgid(0x10001B37E, 0x7FFF5FBFF880, 0x1) = 26 0 11901/0x3ecda: getegid(0x10001B37E, 0x7FFF5FBFF880, 0x0) = 26 0 11901/0x3ecda: geteuid(0x10001B38B, 0x7FFF5FBFF77C, 0x7FFF5FBFF9C0) = 26 0 11901/0x3ecda: getuid(0x10001B38B, 0x7FFF5FBFF77C, 0x0) = 26 0 11901/0x3ecda: getgid(0x10001B38B, 0x7FFF5FBFF77C, 0x1) = 26 0 11901/0x3ecda: getegid(0x10001B38B, 0x7FFF5FBFF77C, 0x0) = 26 0 11901/0x3ecda: geteuid(0x10001C78E, 0x2F, 0x0) = 26 0 11901/0x3ecda: getuid(0x10001C78E, 0x2F, 0x0) = 26 0 11901/0x3ecda: getgid(0x10001C78E, 0x2F, 0x1) = 26 0 11901/0x3ecda: getegid(0x10001C78E, 0x2F, 0x0) = 26 0 11901/0x3ecda: geteuid(0x100108FD0, 0x1, 0x10) = 26 0 11901/0x3ecda: getuid(0x100108FD0, 0x1, 0x0) = 26 0 11901/0x3ecda: getgid(0x100108FD0, 0x1, 0x1) = 26 0 11901/0x3ecda: getegid(0x100108FD0, 0x1, 0x0) = 26 0 11901/0x3ecda: open("/usr/lib/libpcre.0.dylib\0", 0x0, 0x0) = 3 0 11901/0x3ecda: pread(0x3, "\312\376\272\276\0", 0x1000, 0x0) = 4096 0 11901/0x3ecda: pread(0x3, "\317\372\355\376\a\0", 0x1000, 0x1000) = 4096 0 11901/0x3ecda: mmap(0x100035000, 0x29000, 0x5, 0x12, 0x3, 0x1FFFFFFFF) = 0x35000 0 11901/0x3ecda: mmap(0x10005E000, 0x1000, 0x3, 0x12, 0x3, 0x1FFFFFFFF) = 0x5E000 0 11901/0x3ecda: mmap(0x10005F000, 0x2550, 0x1, 0x12, 0x3, 0x1FFFFFFFF) = 0x5F000 0 11901/0x3ecda: fcntl(0x3, 0x2C, 0x7FFF5FBFADC0) = 0 0 11901/0x3ecda: close(0x3) = 0 0 11901/0x3ecda: stat64("/usr/lib/libSystem.B.dylib\0", 0x7FFF5FBFC9C0, 0x7FFF5FBFD000) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation\0", 0x7FFF5FBFC810, 0x7FFF5FBFCE50) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory\0", 0x7FFF5FBFC810, 0x7FFF5FBFCE50) = 0 0 11901/0x3ecda: stat64("/usr/lib/libobjc.A.dylib\0", 0x7FFF5FBFC810, 0x7FFF5FBFCE50) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation\0", 0x7FFF5FBFC810, 0x7FFF5FBFCE50) = 0 0 11901/0x3ecda: stat64("/usr/lib/libauto.dylib\0", 0x7FFF5FBFC5D0, 0x7FFF5FBFCC10) = 0 0 11901/0x3ecda: stat64("/usr/lib/libicucore.A.dylib\0", 0x7FFF5FBFC5D0, 0x7FFF5FBFCC10) = 0 0 11901/0x3ecda: stat64("/usr/lib/libxml2.2.dylib\0", 0x7FFF5FBFC5D0, 0x7FFF5FBFCC10) = 0 0 11901/0x3ecda: stat64("/usr/lib/libz.1.dylib\0", 0x7FFF5FBFC5D0, 0x7FFF5FBFCC10) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork\0", 0x7FFF5FBFC5D0, 0x7FFF5FBFCC10) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration\0", 0x7FFF5FBFC5D0, 0x7FFF5FBFCC10) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/Security.framework/Versions/A/Security\0", 0x7FFF5FBFC5D0, 0x7FFF5FBFCC10) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices\0", 0x7FFF5FBFC5D0, 0x7FFF5FBFCC10) = 0 0 11901/0x3ecda: stat64("/usr/lib/libstdc++.6.dylib\0", 0x7FFF5FBFC470, 0x7FFF5FBFCAB0) = 0 0 11901/0x3ecda: stat64("/usr/lib/system/libmathCommon.A.dylib\0", 0x7FFF5FBFC1D0, 0x7FFF5FBFC810) = 0 0 11901/0x3ecda: stat64("/usr/lib/libsqlite3.dylib\0", 0x7FFF5FBFC3C0, 0x7FFF5FBFCA00) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore\0", 0x7FFF5FBFC390, 0x7FFF5FBFC9D0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata\0", 0x7FFF5FBFC390, 0x7FFF5FBFC9D0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices\0", 0x7FFF5FBFC390, 0x7FFF5FBFC9D0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit\0", 0x7FFF5FBFC390, 0x7FFF5FBFC9D0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE\0", 0x7FFF5FBFC390, 0x7FFF5FBFC9D0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices\0", 0x7FFF5FBFC390, 0x7FFF5FBFC9D0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices\0", 0x7FFF5FBFC390, 0x7FFF5FBFC9D0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit\0", 0x7FFF5FBFC180, 0x7FFF5FBFC7C0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration\0", 0x7FFF5FBFC180, 0x7FFF5FBFC7C0) = 0 0 11901/0x3ecda: stat64("/usr/lib/libbsm.0.dylib\0", 0x7FFF5FBFC180, 0x7FFF5FBFC7C0) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/NetFS.framework/Versions/A/NetFS\0", 0x7FFF5FBFC180, 0x7FFF5FBFC7C0) = 0 0 11901/0x3ecda: stat64("/usr/lib/system/libkxld.dylib\0", 0x7FFF5FBFBFF0, 0x7FFF5FBFC630) = 0 0 11901/0x3ecda: stat64("/usr/lib/libxslt.1.dylib\0", 0x7FFF5FBFC150, 0x7FFF5FBFC790) = 0 0 11901/0x3ecda: stat64("/System/Library/PrivateFrameworks/PasswordServer.framework/Versions/A/PasswordServer\0", 0x7FFF5FBFC650, 0x7FFF5FBFCC90) = 0 0 11901/0x3ecda: stat64("/System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService\0", 0x7FFF5FBFC650, 0x7FFF5FBFCC90) = 0 0 11901/0x3ecda: stat64("/usr/lib/libresolv.9.dylib\0", 0x7FFF5FBFC4C0, 0x7FFF5FBFCB00) = 0 0 11901/0x3ecda: stat64("/usr/lib/libcrypto.0.9.8.dylib\0", 0x7FFF5FBFC460, 0x7FFF5FBFCAA0) = 0 0 11901/0x3ecda: stat64("/System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent\0", 0x7FFF5FBFC2E0, 0x7FFF5FBFC920) = 0 0 11901/0x3ecda: madvise(0x7FFF89205000, 0x2000, 0x5) = 0 0 11901/0x3ecda: madvise(0x7FFF891E3000, 0x2000, 0x5) = 0 0 11901/0x3ecda: madvise(0x7FFF891EF000, 0x2000, 0x5) = 0 0 11901/0x3ecda: madvise(0x7FFF891F8000, 0x2000, 0x5) = 0 0 11901/0x3ecda: madvise(0x7FFF89264000, 0x2000, 0x5) = 0 0 11901/0x3ecda: madvise(0x7FFF891F9000, 0x4000, 0x5) = 0 0 11901/0x3ecda: madvise(0x7FFF89216000, 0x2000, 0x5) = 0 0 11901/0x3ecda: open("/dev/dtracehelper\0", 0x2, 0x7FFF5FC46D88) = 3 0 11901/0x3ecda: close(0x3) = 0 0 11901/0x3ecda: access("/etc/localtime\0", 0x4, 0x0) = 0 0 11901/0x3ecda: open_nocancel("/etc/localtime\0", 0x0, 0x0) = 3 0 11901/0x3ecda: fstat64(0x3, 0x7FFF5FBFCC00, 0x0) = 0 0 11901/0x3ecda: read_nocancel(0x3, "TZif\0", 0x2A64) = 1279 0 11901/0x3ecda: close_nocancel(0x3) = 0 0 11901/0x3ecda: shm_open(0x7FFF828A5D80, 0x0, 0x0) = 3 0 11901/0x3ecda: mmap(0x0, 0x1000, 0x1, 0x1, 0x3, 0x100000000) = 0x80000 0 11901/0x3ecda: close_nocancel(0x3) = 0 0 11901/0x3ecda: geteuid(0x7FFF704A4180, 0x0, 0x2) = 26 0 11901/0x3ecda: geteuid(0x9, 0x10010C859, 0x0) = 26 0 11901/0x3ecda: open("/etc/postfix/main.cf\0", 0x0, 0x0) = 3 0 11901/0x3ecda: read(0x3, "# Global Postfix configuration file. This file lists only a subset\n# of all parameters. For the syntax, and for a complete parameter\n# list, see the postconf(5) manual page (command: \"man 5 postconf\").\n#\n# For common configuration examples, see BASIC_CONFI", 0x1000) = 4096 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF440, 0x6, 0x0) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF440, 0x6, 0x10082C000) = 0 0 11901/0x3ecda: geteuid(0x10001C78E, 0x7FFFFFE00050, 0x0) = 26 0 11901/0x3ecda: getuid(0x10001C78E, 0x7FFFFFE00050, 0x0) = 26 0 11901/0x3ecda: getgid(0x10001C78E, 0x7FFFFFE00050, 0x1) = 26 0 11901/0x3ecda: getegid(0x10001C78E, 0x7FFFFFE00050, 0x0) = 26 0 11901/0x3ecda: mmap(0x0, 0x3000, 0x3, 0x1002, 0x1000000, 0x100000000) = 0x81000 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF640, 0x2, 0x7FFF5FBFF600) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF600, 0x2, 0x7FFF5FBFF698) = 0 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF640, 0x2, 0x7FFF5FBFF66C) = 0 0 11901/0x3ecda: mmap(0x0, 0xD000, 0x3, 0x1002, 0x1000000, 0x100000000) = 0x84000 0 11901/0x3ecda: mmap(0x0, 0xD000, 0x3, 0x1002, 0x1000000, 0x100000000) = 0x91000 0 11901/0x3ecda: mmap(0x0, 0x200000, 0x3, 0x1002, 0x7000000, 0x100000000) = 0x200000 0 11901/0x3ecda: munmap(0x100300000, 0x100000) = 0 0 11901/0x3ecda: chdir("/private/var/spool/postfix\0", 0x10010F36E, 0x0) = 0 0 11901/0x3ecda: sigaction(0xD, 0x7FFF5FBFF740, 0x7FFF5FBFF770) = 0 0 11901/0x3ecda: getuid(0x2, 0x1, 0x1) = 26 0 11901/0x3ecda: getuid(0x100111714, 0xFFFF0000, 0x0) = 26 0 11901/0x3ecda: socketpair(0x1, 0x1, 0x0) = 0 0 11902/0x3ecdc: thread_selfid(0x7FFF704AEBE0, 0x3, 0x1) = 257244 0 11902/0x3ecdc: getpid(0x7FFF704AEBE0, 0x3, 0x0) = 11902 0 11902/0x3ecdc: close(0x4) = 0 0 11902/0x3ecdc: dup2(0x3, 0x0, 0x0) = 0 0 11902/0x3ecdc: dup2(0x3, 0x1, 0x0) = 1 0 11902/0x3ecdc: close(0x3) = 0 0 11902/0x3ecdc: geteuid(0x1001121B0, 0x3D, 0x3D) = 26 0 11902/0x3ecdc: getuid(0x1001121B0, 0x3D, 0x0) = 26 0 11902/0x3ecdc: getgid(0x1001121B0, 0x3D, 0x1) = 26 0 11902/0x3ecdc: getegid(0x1001121B0, 0x3D, 0x0) = 26 0 11902/0x3ecdc: geteuid(0x100112210, 0x3D, 0x3D) = 26 0 11902/0x3ecdc: getuid(0x100112210, 0x3D, 0x0) = 26 0 11902/0x3ecdc: getgid(0x100112210, 0x3D, 0x1) = 26 0 11902/0x3ecdc: getegid(0x100112210, 0x3D, 0x0) = 26 0 11902/0x3ecdc: geteuid(0x100112230, 0x3D, 0x3D) = 26 0 11902/0x3ecdc: getuid(0x100112230, 0x3D, 0x0) = 26 0 11902/0x3ecdc: getgid(0x100112230, 0x3D, 0x1) = 26 0 11902/0x3ecdc: getegid(0x100112230, 0x3D, 0x0) = 26 0 11902/0x3ecdc: execve(0x100112280, 0x100112380, 0x100200010) = -1 Err#1 11902/0x3ecdc: stat64("/usr/sbin/postdrop\0", 0x7FFF5FBFF100, 0x2) = 0 0 11902/0x3ecdc: write(0x2, "sendmail: fatal: execvp /usr/sbin/postdrop: Operation not permitted\n\0", 0x44) = 68 0 11901/0x3ecda: close(0x3) = 0 0 11902/0x3ecdc: geteuid(0x7FFF704A4180, 0x0, 0xB) = 26 0 11902/0x3ecdc: getuid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11902/0x3ecdc: getgid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11902/0x3ecdc: __sysctl(0x7FFF5FBFF0A0, 0x2, 0x7FFF5FBFF0B0) = 0 0 11901/0x3ecda: read(0x3, "nterfaces = $myhostname, localhost\n\n# The proxy_interfaces parameter specifies the network interface\n# addresses that this mail system receives mail on by way of a\n# proxy or network address translation unit. This setting extends\n# the address list specifi", 0x1000) = 4096 0 11901/0x3ecda: read(0x3, "server\n# response code when a recipient domain matches $mydestination or\n# ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty\n# and the recipient address or address local-part is not found.\n#\n# The default setting is 550 (reject mail) but i", 0x1000) = 4096 0 11901/0x3ecda: read(0x3, "ddress] or [address]:port; the form [host] turns off MX lookups.\n#\n# If you're connected via UUCP, see also the default_transport parameter.\n#\n#relayhost = $mydomain\n#relayhost = [gateway.my.domain]\n#relayhost = [mailserver.isp.tld]\n#relayhost = uucphost\n#", 0x1000) = 4096 0 11901/0x3ecda: read(0x3, "\n# system type.\n#\n#mail_spool_directory = /var/mail\n#mail_spool_directory = /var/spool/mail\n\n# The mailbox_command parameter specifies the optional external\n# command to use instead of mailbox delivery. The command is run as\n# the recipient with proper HOM", 0x1000) = 4096 0 11901/0x3ecda: read(0x3, "an multiple physical lines.\n#\n# By default, these patterns also apply to MIME headers and to the\n# headers of attached messages. With older Postfix versions, MIME and\n# attached message headers were treated as body text.\n#\n# For details, see \"man header_ch", 0x1000) = 4096 0 11901/0x3ecda: read(0x3, "l_path: The full pathname of the Postfix sendmail command.\n# This is the Sendmail-compatible mail posting interface.\n# \nsendmail_path = /usr/sbin/sendmail\n\n# newaliases_path: The full pathname of the Postfix newaliases command.\n# This is the Sendmail-compa", 0x1000) = 1850 0 11901/0x3ecda: read(0x3, "no\n\n# manpage_directory: The location of the Postfix on-line manual pages.\n#\nmanpage_directory = /usr/share/man\n\n# sample_directory: The location of the Postfix sample configuration files.\n# This parameter is obsolete as of Postfix 2.1.\n#\nsample_directory ", 0x1000) = 0 0 11901/0x3ecda: fstat64(0x3, 0x7FFF5FBFF650, 0xFC080) = 0 0 11901/0x3ecda: close(0x3) = 0 0 11901/0x3ecda: getrlimit(0x1008, 0x7FFF5FBFEE10, 0x7FFF82755CCC) = 0 0 11901/0x3ecda: open_nocancel("/etc/sysinfo.conf\0", 0x0, 0x1B6) = -1 Err#2 11901/0x3ecda: fork() = 11902 0 11902/0x3ecdc: __semwait_signal(0x803, 0x0, 0x1) = -1 Err#60 11901/0x3ecda: read(0x4, "\333\006\0", 0x1000) = 0 0 11901/0x3ecda: close(0x4) = 0 0 11901/0x3ecda: wait4(0x2E7E, 0x7FFF5FBFF73C, 0x0) = 11902 0 11901/0x3ecda: write(0x2, "sendmail: warning: command \"/usr/sbin/postdrop -r\" exited with status 1\n\0", 0x48) = 72 0 11901/0x3ecda: gettimeofday(0x7FFF5FBFF3C0, 0x0, 0x10) = 1273446059 0 11901/0x3ecda: getuid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11901/0x3ecda: getgid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF220, 0x2, 0x7FFF5FBFF230) = 0 0 11901/0x3ecda: write(0x2, "sendmail: fatal: _lp(26): unable to execute /usr/sbin/postdrop -r: Unknown error: 0\n\0", 0x54) = 84 0 11901/0x3ecda: getuid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11901/0x3ecda: getgid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 11901/0x3ecda: __sysctl(0x7FFF5FBFF240, 0x2, 0x7FFF5FBFF250) = 0 0
From: Wietse Venema on 9 May 2010 19:46 Jamal Mubarak: > > On May 9, 2010, at 5:56 PM, Wietse Venema wrote: > > > This involves getting a trace of system calls (arguments and results) > > when the error happens. > > > > Some systems capture a system call trace with commands like: > > > > ktrace -f /file/name -d command > > strace -o /file/name -f command > > truss -o /file/name -f command > > > > But, things may be different on MacOS. > > > > Above, "command" is the command that starts the entire printing > > system. On some systems, "command" would be: > > > > sh /etc/rc.d/cups start > > sh /etc/init.d/cups start > > > Thanks for replying! I did try "dtruss -n sendmail". It gave me a large output which I compared with a regular email that did not fail. It is hard for me to decipher but here is a part of it. The rest is given below: The problem does not happen in the Sendmail process that you run, but in a CHILD process of that Sendmail process. Therefore, you need to specify an option to trace CHILD processes. The examples above use "-d" or "-f" to achieve that. MacOS dtrace may have a different option for the same purpose. Wietse
From: Jamal Mubarak on 9 May 2010 20:07 On May 9, 2010, at 6:46 PM, Wietse Venema wrote: > The problem does not happen in the Sendmail process that you run, > but in a CHILD process of that Sendmail process. > > Therefore, you need to specify an option to trace CHILD processes. > > The examples above use "-d" or "-f" to achieve that. MacOS dtrace > may have a different option for the same purpose. You are the first person to truly help me! Yes, indeed, the -f option traces child processes. Here is the end of the output for the command "sudo dtruss -fn sendmail": 12180/0x403cc: fstat64(0x3, 0x7FFF5FBFF650, 0xFC080) = 0 0 12180/0x403cc: close(0x3) = 0 0 12180/0x403cc: getrlimit(0x1008, 0x7FFF5FBFEE10, 0x7FFF82755CCC) = 0 0 12180/0x403cc: open_nocancel("/etc/sysinfo.conf\0", 0x0, 0x1B6) = -1 Err#2 12180/0x403cc: __sysctl(0x7FFF5FBFF440, 0x6, 0x0) = 0 0 12180/0x403cc: __sysctl(0x7FFF5FBFF440, 0x6, 0x10082C000) = 0 0 12180/0x403cc: geteuid(0x10001C78E, 0x7FFFFFE00050, 0x0) = 26 0 12180/0x403cc: getuid(0x10001C78E, 0x7FFFFFE00050, 0x0) = 26 0 12180/0x403cc: getgid(0x10001C78E, 0x7FFFFFE00050, 0x1) = 26 0 12180/0x403cc: getegid(0x10001C78E, 0x7FFFFFE00050, 0x0) = 26 0 12180/0x403cc: mmap(0x0, 0x3000, 0x3, 0x1002, 0x1000000, 0x1FFFFFFFF) = 0x81000 0 12180/0x403cc: __sysctl(0x7FFF5FBFF640, 0x2, 0x7FFF5FBFF600) = 0 0 12180/0x403cc: __sysctl(0x7FFF5FBFF600, 0x2, 0x7FFF5FBFF698) = 0 0 12180/0x403cc: __sysctl(0x7FFF5FBFF640, 0x2, 0x7FFF5FBFF66C) = 0 0 12180/0x403cc: mmap(0x0, 0xD000, 0x3, 0x1002, 0x1000000, 0x1FFFFFFFF) = 0x84000 0 12180/0x403cc: mmap(0x0, 0xD000, 0x3, 0x1002, 0x1000000, 0x1FFFFFFFF) = 0x91000 0 12180/0x403cc: mmap(0x0, 0x200000, 0x3, 0x1002, 0x7000000, 0x1FFFFFFFF) = 0x200000 0 12180/0x403cc: munmap(0x100300000, 0x100000) = 0 0 12180/0x403cc: chdir("/private/var/spool/postfix\0", 0x10010F36E, 0x0) = 0 0 12180/0x403cc: sigaction(0xD, 0x7FFF5FBFF740, 0x7FFF5FBFF770) = 0 0 12180/0x403cc: getuid(0x2, 0x1, 0x1) = 26 0 12180/0x403cc: getuid(0x100111714, 0xFFFF0000, 0x0) = 26 0 12180/0x403cc: socketpair(0x1, 0x1, 0x0) = 0 0 12180/0x403cc: fork() = 12181 0 12180/0x403cc: close(0x3) = 0 0 12181/0x403d0: fork() = 0 0 12181/0x403d0: thread_selfid(0x7FFF704AEBE0, 0x3, 0x1) = 263120 0 12181/0x403d0: getpid(0x7FFF704AEBE0, 0x3, 0x0) = 12181 0 12181/0x403d0: close(0x4) = 0 0 12181/0x403d0: dup2(0x3, 0x0, 0x0) = 0 0 12181/0x403d0: dup2(0x3, 0x1, 0x0) = 1 0 12181/0x403d0: close(0x3) = 0 0 12181/0x403d0: geteuid(0x1001121B0, 0x3D, 0x3D) = 26 0 12181/0x403d0: getuid(0x1001121B0, 0x3D, 0x0) = 26 0 12181/0x403d0: getgid(0x1001121B0, 0x3D, 0x1) = 26 0 12181/0x403d0: getegid(0x1001121B0, 0x3D, 0x0) = 26 0 12181/0x403d0: geteuid(0x100112210, 0x3D, 0x3D) = 26 0 12181/0x403d0: getuid(0x100112210, 0x3D, 0x0) = 26 0 12181/0x403d0: getgid(0x100112210, 0x3D, 0x1) = 26 0 12181/0x403d0: getegid(0x100112210, 0x3D, 0x0) = 26 0 12181/0x403d0: geteuid(0x100112230, 0x3D, 0x3D) = 26 0 12181/0x403d0: getuid(0x100112230, 0x3D, 0x0) = 26 0 12181/0x403d0: getgid(0x100112230, 0x3D, 0x1) = 26 0 12181/0x403d0: getegid(0x100112230, 0x3D, 0x0) = 26 0 12181/0x403d0: execve(0x100112280, 0x100112380, 0x100200010) = -1 Err#1 12181/0x403d0: stat64("/usr/sbin/postdrop\0", 0x7FFF5FBFF100, 0x2) = 0 0 12181/0x403d0: write(0x2, "sendmail: fatal: execvp /usr/sbin/postdrop: Operation not permitted\n\0", 0x44) = 68 0 12181/0x403d0: geteuid(0x7FFF704A4180, 0x0, 0xB) = 26 0 12181/0x403d0: getuid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 12181/0x403d0: getgid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 12181/0x403d0: __sysctl(0x7FFF5FBFF0A0, 0x2, 0x7FFF5FBFF0B0) = 0 0 12180/0x403cc: getuid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 12180/0x403cc: getgid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 12180/0x403cc: __sysctl(0x7FFF5FBFF220, 0x2, 0x7FFF5FBFF230) = 0 0 12180/0x403cc: write(0x2, "sendmail: fatal: _lp(26): unable to execute /usr/sbin/postdrop -r: Unknown error: 0\n\0", 0x54) = 84 0 12180/0x403cc: getuid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 12180/0x403cc: getgid(0x0, 0x7FFF704A25F0, 0x7FFF704A25F0) = 26 0 12180/0x403cc: __sysctl(0x7FFF5FBFF240, 0x2, 0x7FFF5FBFF250) = 0 0 12181/0x403d0: __semwait_signal(0x803, 0x0, 0x1) = -1 Err#60 12180/0x403cc: read(0x4, "\333\006\0", 0x1000) = 0 0 12180/0x403cc: close(0x4) = 0 0 12180/0x403cc: wait4(0x2F95, 0x7FFF5FBFF73C, 0x0) = 12181 0 12180/0x403cc: write(0x2, "sendmail: warning: command \"/usr/sbin/postdrop -r\" exited with status 1\n\0", 0x48) = 72 0 Jamal
From: Wietse Venema on 9 May 2010 20:35 Jamal Mubarak: > 12181/0x403d0: execve(0x100112280, 0x100112380, 0x100200010) = -1 Err#1 > 12181/0x403d0: stat64("/usr/sbin/postdrop\0", 0x7FFF5FBFF100, 0x2) = 0 0 > 12181/0x403d0: write(0x2, "sendmail: fatal: execvp /usr/sbin/postdrop: Operation not permitted\n\0", 0x44) = 68 0 execve() fails with error number 1. You can look that number up in /usr/include/sys/errno.h (or whatever the pathname is on MacOS). But, MacOS is a descendant of FreeBSD, and on my machine: #define EPERM 1 /* Operation not permitted */ Now the question is why execve() fails with EPERM. On UNIX systems, EPERM does not report a file permission problem. Instead: 1 EPERM Operation not permitted. An attempt was made to perform an oper- ation limited to processes with appropriate privileges or to the owner of a file or other resources. For example, only the owner (or root) can change the owner or permissions of a file; everyone gets an EPERM error. The same error is returned when a non-root process attempts to raise some resource limit beyond its hard limit. Unfortunately, I see no EPERM error in the FreeBSD exec.c library module or in the kern_exec.c kernel side. Perhaps MacOS has "extra security" features similar to Systrace or AppArmor that interfere with Postfix operation, or you are using a weird file system that burps errors. Wietse
From: Jamal Mubarak on 9 May 2010 21:00 On May 9, 2010, at 7:35 PM, Wietse Venema wrote: > execve() fails with error number 1. You can look that number up in > /usr/include/sys/errno.h (or whatever the pathname is on MacOS). > But, MacOS is a descendant of FreeBSD, and on my machine: > > #define EPERM 1 /* Operation not permitted */ You are absolutely correct. > Now the question is why execve() fails with EPERM. > > On UNIX systems, EPERM does not report a file permission problem. > Instead: > > 1 EPERM Operation not permitted. An attempt was made to perform an oper- > ation limited to processes with appropriate privileges or to the > owner of a file or other resources. > > For example, only the owner (or root) can change the owner or > permissions of a file; everyone gets an EPERM error. The same error > is returned when a non-root process attempts to raise some resource > limit beyond its hard limit. > > Unfortunately, I see no EPERM error in the FreeBSD exec.c library > module or in the kern_exec.c kernel side. Perhaps MacOS has "extra > security" features similar to Systrace or AppArmor that interfere > with Postfix operation, or you are using a weird file system that > burps errors. So if I can find out what this security policy is, and disable it, the print confirmation emails will go thru? Thank you once again for looking into my problem. Jamal
First
|
Prev
|
Next
|
Last
Pages: 1 2 3 4 Prev: ?best practice to stop " root+:|" exploits Next: Filter before delivery without procmail or maildrop |