"Запереть" пользователя без open_basedir

Discussion in 'Linux, Freebsd, *nix' started by Fepsis, 17 Jun 2013.

  1. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Поднимаю сервак, задача: запретить пользователю, под которым работает php, подниматься выше его домашней диры, при этом open_basedir должен быть отключён...

    Подскажите варианты...


    Спасибо!
     
  2. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    А чем не устраивает open_basedir ?
     
  3. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Сервер создаётся под хостинг нескольких проектов на 1С-битрикс. Для того, чтобы проект соответствовал "стандартам битрикса" необходимы определённые параметры хостинга, на котором размещён сайт и один из пунктов, это отключённый open_basedir (как говорят разработчики битрикса, откючение open_basedir повышает производительность)

    Поэтому ищу альтернативу.
     
  4. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Да это бред какой-то, пили open_basedir, экономить на ресурсах за счет безопасности это пи3дец решение крутое. Да и я сомневаюсь что open_basedir жрет что-то. Это банальная проверка где ты находишься.
     
    1 person likes this.
  5. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    b3, я согласен, по моим замерам open_basedir не уменьшает производительность, но я ищу другой выход.

    Вот выдержка из статьи пердставителя битрикса: http://habrahabr.ru/company/bitrix/blog/126914/

    В последнем абзаце есть намёки на решение задачи:

    1) запуск персональных копий веб-сервера (например, тот же Apache) для разных пользователей.
    2) использование FastCGI через php-fpm.

    но при обоих вариантах я не понимаю, что будет запрещать пользователю выходить из домашней диры, при выключенном open_basedir ? Возможно есть какие-то хитрости в настройках ?
     
  6. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    http://ru.wikipedia.org/wiki/Chroot
     
    _________________________
    1 person likes this.
  7. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Ковырялся вчера с chroot, правильно ли я понял, что всё что запускается в песочнице, должно быть там и установлено?
    Поставил в chroot ось, сервер, php и т.д. При отключённом open_basedir не могу подняться до файлов основной оси, но по чрутовой могу свободно перемещаться.

    Вроде и выход, а вроде и не то, что хотел получить, поищу ещё варианты.

    За ссылки по теме буду благодарен. Спасибо!
     
  8. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    чрут хорош тем что туда можно закинуть минимальный набор программ, допустим
    и все, и даже если не будет бейсдира, пользователь будет шариться по пустой ФС не причиняя вреда другим. Но у чрута есть и свои минусы, допустим MySql в чруте не будет работать, на рдоте есть статья о безопасном сервере, там описаны кое какие моменты.
     
  9. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Видел эту статью, по ней и настраивал MySQL, и такой вариант меня вполне устраивает. Сейчас попробую разобраться как в чрут закинуть только то, что нужно, а не разворачивать свою ось под каждый сайт на сервере.
     
  10. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Да просто сам напиши башик для копирования нужных тебе бинарников и все. Не используя debootstrap