Reading Time: 2minutes
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: 188.8.131.52_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 …
More helpful Articles
Tags: binaries, chmod commands, chown root, email, exact error message, failure, failure message, file, host, installation, log, mail delivery failure, mail server, mistake, msg, nerves, orig, ownership, properlydebian, qmailctl, queue, Remote, root, rws, rwx, Shell, shell scripts, sorry message, status, system, test, testuser, Third, wrapper, wrapper scripts