我有一个 /etc/sudoers.d 文件,我想以用户 (zabbix) 的身份运行一个带有参数的程序 (asterisk)。到目前为止,我已经尝试过:
zabbix ALL = NOPASSWD: /etc/path/to/my/script.sh
和
zabbix ALL=(ALL) NOPASSWD: /etc/path/to/my/script.sh
脚本所做的就是运行sudo /usr/sbin/asterisk -rx "pjsip show channelstats"
。我尝试在 sudoers 文件中直接运行此命令,但即使这样,它看起来也像。
zabbix ALL=(ALL) NOPASSWD: /usr/sbin/asterisk -rx "pjsip show channelstats"
而且我也尝试过转义引号,但没有成功,看起来像。
zabbix ALL=(ALL) NOPASSWD: /usr/sbin/asterisk -rx \\"pjsip show channelstats\\"
它仍然要求我输入密码。即使我将所有参数更改为用户“星号”甚至“root”,它仍然要求输入密码。当我转到 Zabbix(监控服务器)并尝试检索所述数据时,它会收到此错误消息。
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required
但是,如果我只给它可执行文件,而不带参数,我如何才能让它工作,因为在没有任何特定参数的情况下访问 Asterisk 是一种非常非常糟糕的做法。我怎样才能让它不要求输入密码?
PS 我总是使用 Visudo 来编辑 Sudoers 文件。
谢谢。