Answers:
您可以重新发明轮子,但是老实说,我为此使用了无密码的sudo。例如,我的监视系统需要能够运行命令来检查硬件RAID。这需要root特权,但是我不想以root身份运行整个监视系统,所以我在sudoers
一行中说:
nagios ALL=(root) NOPASSWD: /usr/lib/nagios/plugins/check_md_raid
然后sudo /usr/lib/nagios/plugins/check_md_raid
在需要检查RAID时以监视用户身份运行命令。
你可能会说一个sudoers行
www-user ALL=(root) NOPASSWD: /etc/rc.d/init.d/myservice
然后让php执行sudo /etc/rc.d/init.d/myservice restart
。
看一下sudo:它允许指定可以以另一个用户(在您的情况下为root)身份执行的操作。
例如,您可以添加到您/etc/sudoers
的文件中(不要直接使用来编辑文件visudo
)
www-user-account ALL= NOPASSWD: /usr/bin/mypredefinedaction
请参阅man sudo
以获取文件的详细信息和语法
/etc/sudoers
文件时要非常小心。如果从语法上讲无论如何都不正确,则将其改回是一场噩梦,您需要sudo
重新将其改回,但您不能仅仅通过sudo消灭它。您最终不得不使用应急CD / DVD并手动安装分区。
shudders
?visudo确实进行了完整性检查,但是在损坏完成后它们没有帮助:P