use*_*297 15 security linux web-server root
我希望能够从 php 脚本重新启动服务。在 www-user 帐户下运行。
执行这些操作的首选方式是什么?
我认为我可以使用 que'd 命令创建一个文件,由 CRON 读取,但解决方案很痒。
我在想的是一个在 root 下运行的小服务,允许预定义的“方法”,因此无法执行任意的 root 操作。
有什么工具可以做到这一点吗?
Mad*_*ter 27
您可以重新发明轮子,但老实说,我为此使用了无密码 sudo。例如,我的监控系统需要能够运行命令来检查硬件 RAID。这需要 root 权限,但我不想以 root 身份运行整个监控系统,所以我在sudoers一行中说
nagios ALL=(root) NOPASSWD: /usr/lib/nagios/plugins/check_md_raid
Run Code Online (Sandbox Code Playgroud)
然后sudo /usr/lib/nagios/plugins/check_md_raid当我需要检查 RAID 时,以监控用户身份运行该命令。
你可以有一个 sudoers 行说
www-user ALL=(root) NOPASSWD: /etc/rc.d/init.d/myservice
Run Code Online (Sandbox Code Playgroud)
然后让 php 执行sudo /etc/rc.d/init.d/myservice restart。
看看sudo:它允许指定可以作为另一个用户(在您的情况下为 root)执行的操作。
例如,您可以添加到您的/etc/sudoers(不要直接使用编辑文件visudo)
www-user-account ALL= NOPASSWD: /usr/bin/mypredefinedaction
Run Code Online (Sandbox Code Playgroud)
有关man sudo文件的详细信息和语法,请参阅