Перезапуск сервера Linux через веб-браузер (PHP)
после открытия и чтения каждого результата в Google, я решил, что пришло время сделать свой собственный поток где-то. мне жаль, что мне нужно задать вопрос, который уже был задан раньше, я не могу подчеркнуть это достаточно, но у меня нет другого выбора, поскольку ни один другой заданный вопрос не помог мне достичь моей цели.
Я пытаюсь настроить средство перезагрузки/выполнения других системных функций через веб-интерфейс, работающий на HTML (для кнопок / текста) и PHP (для выполнение указанных функций).
Я не могу заставить это работать. Я прочитал, что мне нужно добавить веб-пользователя в файл sudoers, и я попытался. Я запускаю Nginx на своем сервере, как Добавить пользователя в sudoers в моем случае?
кроме того, я знаю о рисках безопасности.
вот что у меня пока есть:
HTML (index.HTML-код):
<body>
<h3>Restart</h3>
<p>
<form action="restart.php" method="get">
<input type="submit" value="Press me.">
</form>
</p>
</body>
в PHP (перезапуск.php):
<?php
echo "This is a test";
echo "<br>";
echo "<br>";
echo shell_exec('ifconfig');
echo "<br>";
echo "<br>";
echo "Restarting server...";
exec ('/usr/bin/sudo /etc/init.d/portmap restart');
shell_exec("/sbin/reboot");
exec("/sbin/reboot");
system("/sbin/reboot");
?>
пользователям использовать sudo?:
# User privilege specification
root ALL=(ALL:ALL) ALL
www-data reboot = NOPASSWD: /sbin/reboot
Это все на Ubuntu 14.04 LEMP.
3 ответов
вы можете сделать это либо путем редактирования файла sudoers:
пользователям использовать sudo?:
www-data ALL=(root) NOPASSWD: /sbin/reboot
на сначала все для имени хоста если вы Имя хоста не 'перезагрузка' я советую вам сохранить все, как он будет работать в любом имени хоста. Вот почему он не работает на вашем сервере
перезагрузка.в PHP
exec('sudo /sbin/reboot');
или без редактирования ваших sudoers файл.
- сначала создайте файл, в котором вы собираетесь хранить пароль root
~/пароль :
myrootpassword
- второй запустите любую команду, которую вы хотите, будучи root из файла php (не забудьте указать файл, в котором хранится ваш пароль)
phpfile.на PHP :
exec('sudo -u root -S /sbin/reboot < ~/password');
www-data reboot = NOPASSWD: /sbin/reboot
это означает, что вам не нужен пароль при запуске sudo, а не то, что команда выполняется как sudo при запуске этим пользователем.
ответ заключается в использовании sudo /sbin/reboot
команды