ハマったのだけど解決した。CentOS 5.5 での例
/etc/postfix/main.cf で
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/aliases.regexp
みたいな感じで正規表現版の aliases を指定する。
/etc/postfix/aliases.regexp で
/^マッチさせたいアドレス$/ 受け取りたいユーザー
を指定して、特定ユーザーが受け取るようにする(default_privs に nobody 以上の権限を持つユーザーを指定したくない為)
/home/受け取りたいユーザー/.forward で
"| /usr/bin/php -f /home/受け取りたいユーザー/実行したいphp > /dev/null 2>&1"
これで受け取りたいユーザーで実行したいphpが実行できる。
受け取りたいユーザーがwwwなどの既に/etc/aliases に書かれているユーザーの場合、そっちに行ってしまうかもしれないのでコメントアウトしておく。ユーザー名が www なら webmaster -> root に行くように書かれているっぽい。
尚、/etc/postfix/aliases.regexp を変更した場合でも newaliases の実行が必要。
aliases で実行するように指定したものがユーザー postfix で実行されるのだと勘違いしていてハマった(default_privs で指定されているユーザーで実行される模様、指定しないと nobody)。
あぁ、あと ホームディレクトリへのアクセスは SELinux にも制限されてた。postfix_local_t, postfix_map_t, postfix_master_t あたりのタイプに home_dir_t とかの下の色々へのアクセスを許すようにモジュールを書いて適用する。