保持简短;
PHP脚本需要运行/etc/init.d/nagios reload
,将apache ALL = (nagios) NOPASSWD: /etc/init.d/nagios
添加到sudo-ers文件中,但要使用SUDO PHP需要一个TTY(我不想删除Defaults requiretty
所以我想要“伪造”或为PHP脚本创建一个TTY,以便它可以重新加载Nagios。
RedHat 6,PHP 5.3
答案 0 :(得分:2)
这可以做到 - sudo的requiretty
选项相对容易失败,因此它本身并没有真正增加安全性。如果您确定要将其保留(可能需要支持在默认情况下启用requiretty
的用户系统上运行脚本?)那么制作tty可能确实是正确的解决方案。
但是我强烈建议在PHP之外做一些tty伪装部分,可能是在Python中编写一些sudo包装器脚本(在pty module中有一些不错的方便功能),甚至是bash +之类的东西socat