控制用户sendmail在别名中运行脚本

假设我在/etc/aliases有这样一行:

foo-bar:“| / etc / smrsh / some_script”

some_script正在作为用户mail运行,但我需要它作为用户nobody运行。

我使用procmail作为本地交付代理,系统是一些混蛋的RHEL。

我怎样才能configurationsendmail或procmail做我想要的?

你可以用sudo和另一个脚本来做到这一点。 在/ etc / sudoers中,允许用户邮件以没有密码的用户nobody(并且只有用户nobody)运行命令,如下所示:

 mail ALL = (nobody) NOPASSWD: /usr/bin/script2 

那么some_script的内容将成为script2的包装:

 sudo -u nobody /usr/bin/script2 

然后脚本2将作为用户nobody执行。

注意我不保证这里没有巨大的安全漏洞。