如何使用用户和路径将后缀输入通过管道传递给特定脚本?
How to pipe postfix input to a specific script with user and path?
如何将特定用户的电子邮件通过管道传输到脚本,并且该脚本 运行 具有特定用户的登录名。
我的 /etc/postfix/master.cf 文件中有这个:
my_transport unix - n n - 50 pipe
flags=R user=deploy argv=/srv/www/myscript
我的脚本将 $PATH
和 whoami
打印到一个文件中,这就是我得到的结果
PATH=/usr/bin:/bin
whoami = deploy
如果我 运行 sudo su - deploy
和 运行 echo "PATH=$PATH"
和 echo "whoami = $(whoami)"
我得到
PATH=/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
whoami = deploy
如何将 postfix 运行 myscript 作为部署用户,但它是真实路径,而不是短路径。
谢谢!
我用一个新脚本做了一个肮脏的 hack,我用它来调用我的旧脚本
PATH=/home/deploy/.rbenv/bin:/home/deploy/.rbenv/shims:$PATH
source ""
exit $?
更多信息见this diff
希望这对其他人有用:D
如何将特定用户的电子邮件通过管道传输到脚本,并且该脚本 运行 具有特定用户的登录名。
我的 /etc/postfix/master.cf 文件中有这个:
my_transport unix - n n - 50 pipe
flags=R user=deploy argv=/srv/www/myscript
我的脚本将 $PATH
和 whoami
打印到一个文件中,这就是我得到的结果
PATH=/usr/bin:/bin
whoami = deploy
如果我 运行 sudo su - deploy
和 运行 echo "PATH=$PATH"
和 echo "whoami = $(whoami)"
我得到
PATH=/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
whoami = deploy
如何将 postfix 运行 myscript 作为部署用户,但它是真实路径,而不是短路径。
谢谢!
我用一个新脚本做了一个肮脏的 hack,我用它来调用我的旧脚本
PATH=/home/deploy/.rbenv/bin:/home/deploy/.rbenv/shims:$PATH
source ""
exit $?
更多信息见this diff
希望这对其他人有用:D