我已经在计算机上安装了postfix,并且正在以编程方式(使用python)动态地更新virtual_alias(在某些操作上)。更新/ etc / postfix / virtual_alias中的条目后,我将运行以下命令:
sudo /usr/sbin/postmap /etc/postfix/virtual_alias 2>>/work/postfix_valias_errorfile
但是我得到了错误:
sudo: sorry, you must have a tty to run sudo
我想以非人为方式运行上述sudo命令(这意味着我正在从python脚本运行此系统命令。)。那么如何使该命令以编程方式运行?
您可以以root身份本身运行python脚本-则无需添加特权即可重新加载后缀。
或者,您可以将sudo配置为不需要密码/etc/init.d/postfix。
/etc/init.d/postfix
sudo配置(通过visudo)允许NOPASSWD:允许不带密码的命令。参见http://www.sudo.ws/sudo/man/sudoers.html#nopasswd_and_passwd
<username> ALL = NOPASSWD: /etc/init.d/postfix
或类似的东西。