我已经在我的机器上安装了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脚本 - 然后您不需要添加权限来重新加载postfix.
或者您可以将sudo配置为不需要密码/etc/init.d/postfix
.
sudo配置(通过visudo)允许NOPASSWD:允许命令没有密码.见http://www.sudo.ws/sudo/man/sudoers.html#nopasswd_and_passwd
ALL = NOPASSWD: /etc/init.d/postfix
或类似的东西.