1. 游客, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

PHP запуск gs (локаций и служб) через exec (вопрос на засыпку)

本贴由 wsok2015-05-29 发布. 版块名称: Программирование

  1. TopicStarter Overlay

    wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    В общем пытаюсь написать панель управления локациями, примерно как в айвеб, но используя PHP. Вся проблема в том, что при попытке запуска из веб панели, нужная служба или локация не поднимается, но если обратится к пхп скрипту из терминала с правами рута, то успешно поднимается. Я так понимаю все дело в правах, а точнее, что www-data юзер не может получить полномочии по запуску.

    Решил погуглить, но там все сводится к тому, что либо апач нужно разрешить по рут пользователем либо пользователю www-data выдать рут полномочии, но оба эти момента по сути вполне приличная уязвимость. Среди альтернативы ещё предлагают использовать некий демон, который был бы запущен под рутом и мог принимать через сокет от вебскрипта команды и уже транслировать их в терминал...

    Разве нет прочих альтернатив, чтоб из веб скрипта запустить службу, без вмешательства в манипуляции прав и полномочий или использование демона?
  2. salitypw Программист Пользователи

    注册日期:
    2011-09-20
    帖子:
    673
    支持:
    460
    性别:
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Не надо давать на все рут доступ для пользователя www-data. Там можно создать список файлов и/или директорий ( в моем случае это было пару shell-скриптов), к которым www-data будет иметь рут доступ.
  3. Neron Пользователи

    注册日期:
    2012-04-27
    帖子:
    322
    支持:
    12
    Репутация:
    0
    А она могут так же находиться в home например? Или чтобы работали должны только www/
  4. salitypw Программист Пользователи

    注册日期:
    2011-09-20
    帖子:
    673
    支持:
    460
    性别:
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Они могут находиться где угодно.
  5. TopicStarter Overlay

    wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    Я вот поглядел скрин в теме этой http://mmorpg-devs.ru/threads/Личный-кабинет-myweb.16046/
    Там запуск работает по какому принципу?
  6. salitypw Программист Пользователи

    注册日期:
    2011-09-20
    帖子:
    673
    支持:
    460
    性别:
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Возможно
  7. TopicStarter Overlay

    wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    в смысле возможно? Я спросил же по какому там принципу реализована эта функция? )
  8. JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    В инете слитая копия есть, возьми и посмотри.
    已获得10000的支持.
  9. Fituchini Пользователи

    注册日期:
    2010-04-28
    帖子:
    339
    支持:
    71
    性别:
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Работает по принципу «ВОЗМОЖНО»
    Новый принцип возможно, теперь в шаре)))
  10. TopicStarter Overlay

    wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    в копии что слита ещё не реализован монторинг локаций, как сам странгер писал, он потом добавил это, когда попросил один из клиентов.
  11. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    注册日期:
    2010-04-02
    帖子:
    754
    支持:
    1,313
    性别:
    Репутация:
    6
    По хорошему, запускать сервер можно и не от рут пользователя (так даже будет лучше в плане безопасности), но делать это на php идея не очень, сам когда-то давно пробовал в веб сервер части пвадмина.
  12. TopicStarter Overlay

    wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    просто ЛК функцию делаю, и там сейчас застопорился на запуске служб и локаций. Может демона тогда юзать котоырй бы выступал посредником? Т.е. пхп скрипт через сокет отправляет команду демону, демон уже как рут выполняет эту команду в терминале и возвращает результат о выполнении (успех или ошибка). Как считаешь, это прокатит?
    --- добавлено: 29 май 2015 в 16:57 ---
    понимаю, что с пвадмином проще, но если его нет возможности купить, нужно другое решение, но тоже надежное и точно не айвеб.. Вот как говорится и приходится изобретать велосипеды)
    Последнее редактирование модератором: 2015-06-06
  13. Stranger B L A C K    L I S T Пользователи

    注册日期:
    2013-04-22
    帖子:
    71
    支持:
    66
    Репутация:
    0
  14. TopicStarter Overlay

    wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    понимаю, что с пвадмином проще, но если его нет возможности купить, нужно другое решение, но тоже надежное
    т.е. получается установить эту либу придется... Ты я так понял именно её и использовал в лк?
  15. TopicStarter Overlay

    wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    Установил либы на ssh2, вроде пашет.
    Последнее редактирование: 2015-05-30
  16. TopicStarter Overlay

    wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    Подведем итоги темы =)

    [​IMG]

    Вроде все получилось, все как надо стартует и останавливается. Всем, кто не прошел мимо темы и помог советами - большое спасибо!

    Стренжеру особое спасибо, за то, что ткнул носом в либы SSH2, реально, я не знал о них )
    已获得10000JonMagongam1ng的支持.
Черновик сохранён Черновик удалён

分享此页面