我希望能够从一个php脚本重新启动服务。 在www用户帐户下运行。
执行这些操作的首选方法是什么?
我想我可以创build一个queon命令的文件,由CRON读取,但解决scheme痒。
我在想的是一个微小的服务,在root下运行,允许预定义的“方法”,以便任意的根操作不能被执行。
任何工具在那里?
你可以重新发明轮子,但说实话,我使用无密码的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