Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: выполнить консольную команду с правами root на PHP  (Прочитано 7103 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lamer2010

  • Автор темы
  • Участник
  • *
  • Сообщений: 151
    • Просмотр профиля
Здраствуйте, подскажите пожалуйста как на PHP выполнить консольную программу с правами root? а точнее вот так-
$output=shell_exec('sudo команда');
в php знаний никаких, поэтому объясните пожалуйста чтоб я понял

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
echo "www-data ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/90-cloudimg-www-dataи ребут.

Цитировать
$output=shell_exec('sudo команда');
всё ок.
Wars ~.o

Оффлайн Lamer2010

  • Автор темы
  • Участник
  • *
  • Сообщений: 151
    • Просмотр профиля
спасибо всё работает, есть ещё вопрос, как передать переменную содержащую строку на php в аналогичную переменную javascript?
попробовал сделать так, не работает:
<?php
$output=shel_exec('sudo команда');
?>
<script>
var a="<?php echo $output; ?>";
alert(a);
</script>
Что сдесь не правильно?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
не знаю.
Wars ~.o

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
спасибо всё работает

Да, действительно, работает. Теперь любой мудак, подключившийся к веб-серверу, имеет права рута.
Ты хоть думай, что тебе советуют. А то будешь всю жизнь в лохах ходить.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Lamer2010

  • Автор темы
  • Участник
  • *
  • Сообщений: 151
    • Просмотр профиля
Понятно, а как тогда можно выполнять вышепривёдынный пример, не открывая такие "дыры", подскажите?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Во-первых удали тот файл. На будущее, редактировать файлы sudoers только через visudo, иначе систему можно заблокировать до пешей прогулки к консоли и загрузки в рекавери.
Во-вторых, опиши задачу немного подробнее. Что ты хочешь сделать?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Lamer2010,
(Нажмите, чтобы показать/скрыть)
Wars ~.o

Оффлайн Lamer2010

  • Автор темы
  • Участник
  • *
  • Сообщений: 151
    • Просмотр профиля
1) файл удалил.
Задача в том чтобы через браузер(веб-интерфейс), выполнить консольную команду с правами root, и сохранить вывод этой команды в переменную javascript в виде строки. Как я понимаю средствами самого javascript это не сделать, поэтому пробую выполнить на PHP вот так $output=shell_exec('sudo traceroute -I хост').
И второй момент подскажите как строку из $output передать в переменную javascript, тоже в виде строки?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Цитировать
$output=shell_exec('sudo команда');
команда?
пример, пожалуйста.
Wars ~.o

Оффлайн Lamer2010

  • Автор темы
  • Участник
  • *
  • Сообщений: 151
    • Просмотр профиля
Цитировать
$output=shell_exec('sudo команда');
команда?
пример, пожалуйста.
команда- sudo traceroute -I хост

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
изменить файл /etc/sudoers.d/90-cloudimg-www-data
www-data ALL=(ALL) NOPASSWD:ALLна
www-data ALL=(ALL) NOPASSWD:/usr/sbin/traceroute
Wars ~.o

Оффлайн Lamer2010

  • Автор темы
  • Участник
  • *
  • Сообщений: 151
    • Просмотр профиля
Спасибо, решено, щас работает, а не знаете как из переменной на PHP содержащую строку, присвоить эту строку переменной javascript, для дальнейшей обработки на javascript, хотя это не столь важно, думаю разберусь с этим. но всё же?

Оффлайн SvMidi

  • Активист
  • *
  • Сообщений: 815
    • Просмотр профиля
можно так, как сделал ты.
Я знаю только то, что ничего не знаю, остальные не знают и этого.

Оффлайн Luca Brasi

  • Активист
  • *
  • Сообщений: 706
  • typical engineer
    • Просмотр профиля
Lamer2010, так?
<script type="text/javascript"> var bool = "<?php echo $bool ? >";
</script>
Ubuntu 18.04/ AMD Ryzen 5 2600 3.4GHz/ MSI B450-A Pro Max / Crucial DDR4-3000 16384MB / MSI PCI-Ex GeForce GT 710 2048 MB / Chieftec GPS-600

 

Страница сгенерирована за 0.015 секунд. Запросов: 21.