通过Web浏览器重启Linux服务器(PHP)

在Google上打开并阅读每一个结果后,我认为是时候在某处创建自己的主题了.对不起,我需要问一个之前已经被问过的问题,我不能强调这一点,但我别无其他选择,因为没有其他问题帮我实现了我的目标.

我正在尝试通过由HTML(用于按钮/文本)和PHP(用于执行上述功能)提供支持的Web界面来设置重启/执行其他系统功能方法.

我无法让这个工作.我已经读过我需要将web用户添加到sudoers文件中,我已经尝试过了.我在我的服务器上运行Nginx,如何在我的情况下将用户添加到sudoers?

此外,我知道安全风险.

以下是我到目前为止的情况:

HTML(index.html):

PHP" method="get">
  

PHP(restart.PHP):

PHP
echo "This is a test";
echo "

请注意,在这里,我只有很多东西试图执行,所以我确保当其中一个有效时我会击中目标,如果这有意义的话. IFConfig只是一个测试,以确保它实际上能够执行.

sudoers的:

# User privilege specification
root    ALL=(ALL:ALL) ALL
www-data reboot = NOPASSWD: /sbin/reboot

这一切都在Ubuntu 14.04 LEMP上.

最佳答案
您可以通过编辑sudoers文件来执行此操作:

sudoers的:

www-data ALL=(root) NOPASSWD: /sbin/reboot 

如果您的主机名不是’reboot’,则第一个ALL用于主机名.我建议您保留ALL,因为它可以在任何主机名中使用.这就是为什么它似乎不适用于您的服务器

restart.PHP

exec('sudo /sbin/reboot');

或者不编辑你的sudoers文件.

>首先创建一个文件,您将存储您的root密码

〜/密码:

myrootpassword

>第二次从PHP文件中运行你想要的任何命令(不要忘记指定存储密码的文件)

PHPfile.PHP

exec('sudo -u root -S /sbin/reboot < ~/password');

相关文章

文件查找(find) 1 find 简单的说,就是实时查找指定的内容或条件。特点:最新、最快、最准确。 用法:...
非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,...
编译安装httpd 1 去官网下载源码包 为避免非法软件,一定要去官网下载http://www.apache.org httpd-2.4...
gdisk用法 gdisk - InteractiveGUIDpartitiontable (GPT) manipulator GPTfdisk (akagdisk) isatext-mo...
1 一定用快捷键 这里简单的说下几个常用的快捷按键。 1.1 移动光标快捷键 Crtl + a 光标回到命令行...
bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径。如果test命令中列出的条件成立...