Reading Time: 2 minutes
After a failed attempt to enable some wrapper scripts to enable domain keys support in a qmail powered mail server my qmail server suddenly stopped being able to normally send mail.
The exact error message which was logged in /var/log/qmail/current was:
@400000004dd66fcc16a088ac delivery 1: deferral: Sorry,_message_has_wrong_owner._(#4.3.5)/
This qmail messed happened after I substituted /var/qmail/bin/qmail-queue and /var/qmail/bin/qmail-remote with two respective wrapper shell scripts which were calling for the original qmail-queue and qmail-remote binaries under the names qmail-queue.orig and qmail-queue.orig
Restoring back qmail-queue.orig to /var/qmail/bin/qmail-queue and qmail-remote.orig to /var/qmain/bin/qmail-remote and restarting the mail server broke my qmail install.
After a bunch of nerves trying to isolate what is causing the error I found out that by mistake I forgot to copy the qmail-queue and qmail-remote permissions and ownership.
Thus I had to check another qmail working installation’s permissions for both binaries and fix the permissions to be equivalent to the permissions:
debian:~# ls -al /var/qmail/bin/qmail-remote
-rwx–x–x 1 root qmail 50464 2011-05-20 12:56 /var/qmail/bin/qmail-remote*
debian:~# ls -al /var/qmail/bin/qmail-queue
-rws–x–x 1 qmailq qmail 20392 2011-05-20 12:56 /var/qmail/bin/qmail-queue*
The exact chmod and chmod commands I issued to solve the shitty issues were as follows:
First I fixed the qmail-queue and qmail-remote ownership:
debian:~# chown qmailq:qmail /var/qmail/bin/qmail-queue
debian:~# chown root:qmail /var/qmail/bin/qmail-remote
Second I set the proper file permissions:
# make the qmail-queue binary suid
debian:~# chmod u+s /var/qmail/bin/qmail-queue
debian:~# chmod 611 /var/qmail/bin/qmail-queue
debian:~# chmod 611 /var/qmail/bin/qmail-remote
Third and last I did a restart of the qmail server and tested it sends properly
debian:~# /usr/bin/qmailctl stop
debian:~# /usr/bin/qmailctl start
Finally to test that the qmail server qmail-queue was queing and sending with qmail-remote I used the system mail command like so:
debian:~# mail -s "test email" firstname.lastname@example.org
Afterwards the mail was properly received on my mail account email@example.com immediately.
In my /var/log/qmail/current log file all seemed fine:
@400000004dd6702a2eb2b064 starting delivery 1: msg 85281596 to remote firstname.lastname@example.org
@400000004dd6702a2eb2b834 status: local 0/20 remote 1/20
@400000004dd6702b34cc809c delivery 1: success: 18.104.22.168_accepted_message./Remote_host_said:_250_ok_
@400000004dd6702b34cc886c status: local 0/20 remote 0/20
@400000004dd6702b34cc8c54 end msg 85281596
The test mail was properly received on my mail account email@example.com immediately.
It took me like half an hour to figure out what exactly is wrong with the permissions in situations like this I really wanted to change all my qmail installs with postfix and forget forever I ever used qmail …