LINUX.ORG.RU

php и консольные команды

 


0

1

Как отдать в php команду требующею рутовских прав?
В коде не действует последний <div id=«information»>, вернее действует но не показывает что должен, так как рутовская команда не работает:

<?php

echo '<style type="text/css">
body {
font-size: 12px;
font-family: sans-serif;
color: #9BB1C2;
background: #1D2126;
}
h3 {
font-size: 12px;
}
#information {
border: solid 10px #1D2126;
float:left;
marging: 0;
padding: 20px;
background: #2B3138;
}
</style>';

echo '<div id="information">';
$get_fs = `df -h`;
$explode_fs = explode("\n", $get_fs);
for($i=0; $i<sizeof($explode_fs); $i++) {
if ($i === 0){echo "<h3>".$explode_fs[$i]."</h3>";}
else {echo $explode_fs[$i]."<br>";}
}
echo "</div>";

echo '<div id="information">';
$get_fs = `netstat -tup`;
$explode_fs = explode("\n", $get_fs);
for($i=0; $i<sizeof($explode_fs); $i++) {
if ($i === 0){echo "<h3>".$explode_fs[$i]."</h3>";}
else {echo $explode_fs[$i]."<br>";}
}
echo "</div>";

echo '<div id="information">';
$get_fs = `sudo fdisk -l`;
$explode_fs = explode("\n", $get_fs);
for($i=0; $i<sizeof($explode_fs); $i++) {
if ($i === 0){echo "<h3>".$explode_fs[$i]."</h3>";}
else {echo $explode_fs[$i]."<br>";}
}
echo "</div>";

?>



Последнее исправление: raycast (всего исправлений: 2)

Вариант 1. echo 'password' | fdisk -l

Вариант 2. Настроить беспорольный sudo для apache/php юзера. Что-то типа %www-data ALL=(ALL) NOPASSWD: ALL

В любом случае, к этому надо подходить очень осторожно, так как можно отгрести эпичных дырок в безопасности

BobiKK
()

добавить в /etc/sudoers
www-data ALL = NOPASSWD: /sbin/fdisk -l

работать будет, но затея херовая

Wolfram
()

Можно написать демона на баше, который с определённым интервалом будет собирать нужную информацию и записывать в файл, а из файла вытягивать её посредством PHP. Намного безопаснее, имхо.

wintrolls ☆☆
()
Ответ на: комментарий от BobiKK

Настроить беспорольный sudo для apache/php юзера.

Это уже эпичная дыра. Остальных можно не боятся отгрести.

Suntechnic ★★★★★
()
Ответ на: комментарий от Suntechnic

Я бы правда еще посоветовал не использовать для этого апач. Поставь какой-нибудь другой сервер. Полегче. Настрой его на другой порт. Рекомендую gatling.

Suntechnic ★★★★★
()

Только через демон такое имеет смысл делать.

Wizard_ ★★★★★
()
Ответ на: комментарий от raycast

Если пофиг на безопасность, запускай апач с правами рута.

TDrive ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.