За последние 24 часа нас посетили 17130 программистов и 1628 роботов. Сейчас ищут 1758 программистов ...

Как воспользоваться su через shell_exec?

Тема в разделе "Вопросы от блондинок", создана пользователем Диди, 5 мар 2011.

  1. Диди

    Диди Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    Задача: требуется исполнить нечто (например /etc/init.d/apache2 restart) от имени рута (пароль есть) через php страницу.
    Видилось решение типа shell_exec("su -l root && RootPass && /etc/init.d/apache2 restart");
    Не работает, хотя непонятно почему.
    Весь интернет облазил - везде советуют почитать sudo man и использовать его. :)
    Я в недоумении. Неужели безопаснее дать права www-data на запуск такой популярной команды и ждать, что какой-нибудь умелец найдет способ запускать её же через одну из многих тысяч страниц на сайте (например через какую-нибудь дырку, например в джумле), чем хранить пароль рута пусть и в открытом виде, но в скрипте, путь к которому никто не знает, защищенном .htaccess, и исполнять в нем su?
    И как правильно воспользоваться именно su?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    может быть нельзя su этому пользователю, под которым работает пхп. нужно его внести в список судоеров. или хотя бы почитать ответ системы на эту команду.
     
  3. Диди

    Диди Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    shell_exec не возвращает ничего. Если запускать скрипт из под ssh, То вываливается сообщение Password:
    Мне кажется проблема лишь в синтаксисе. Если пароль ввести в ручную то su выполняется.
    Вопрос в том, можно ли в одной строке передать su пароль пользователя?
    shell_exec("su -l root\nRootPass"); не работает, так же запрашивает пароль.

    Уже писал - это решение предлагается везде, но лично мне кажется гораздо более опасным.