Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am new to postfix and am trying to pipe a message to a particular email address to a bash script. I am running CentOS 6 in case that matters.

My script has 777 permission (for testing), and when I email to the test account I see that postfix tries to run the script. This is the relevant line from the maillog:

Feb 16 15:08:40 lserver2 postfix/local[19675]: F4045103000: to=, orig_to=, relay=local, delay=1737, delays=1737/0.01/0/0.01, dsn=4.3.0, status=deferred (temporary failure. Command output: local: fatal: execvp /data/scripts/testscript: Permission denied )*

This looks like a permissions issues. When I try to run my script as us 'postfix' or 'nobody' I get the error: This account is currently not available.

I'm not sure where to go from here....I've read several posts that don't give a clear next step. (I don't want to redirect ALL mail to a script, and one answer looks WAY to complicated for something so simple)

share|improve this question
add comment

1 Answer 1

If your script is owned by foo, for example, try the following:

  1. Create /home/foo/.aliases and move the piping line from /etc/aliases to it.
  2. Run postalias /home/foo/.aliases.
  3. Add /home/foo/.aliases to the alias_maps of /etc/postfix/main.cf.
  4. Restart the postfix.

Note that the owner of /home/foo/.aliases and /home/foo/.aliases.db must be foo.

See http://www.postfix.org/ADDRESS_REWRITING_README.html#aliases. It says:

For security reasons, deliveries to command and file destinations are performed with the rights of the alias database owner.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.