За последние 24 часа нас посетили 22154 программиста и 1056 роботов. Сейчас ищет 631 программист ...

www-data и файлы сайта

Тема в разделе "Настройка веб-сервера", создана пользователем Дюран, 21 ноя 2018.

  1. Дюран

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

    С нами с:
    9 мар 2018
    Сообщения:
    257
    Симпатии:
    19
    Приветствую.
    Встретил (второй ответ тут) что есть документация к ОС которая говорит:
    Some web servers run as www-data. Web content should not be owned by this user, or a compromised web server would be able to rewrite a web site. Data written out by web servers will be owned by www-data.​
    Web сервер работает под пользователем www-data, но этот пользователь не должен иметь доступ к "веб контенту". Как это понимать?
    А в первом ответе той темы наоборот говорится что каким пользователем запускаешь такой и должен владеть всеми теми файлами сайта.
     
  2. ElisDN

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

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Сервер должен иметь доступ к скриптам только на чтение, чтобы хакер через PHP не мог ничего вписать в index.php или куда-то ещё.

    Исключение – только папки для логов, кеша или uploads, в которые он специально пишет сам.
     
    Дюран нравится это.
  3. Дюран

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

    С нами с:
    9 мар 2018
    Сообщения:
    257
    Симпатии:
    19
    Глянул на виртуальном хостинге своих сайтов у таймвеб и рег.ру владельцем всех файлов и пользователем апача(выполняю из браузера скрипт в котором echo exec('whoami')) является один пользователь.
    Не знаете, это у них так специально сделано? Например чтобы упростить клиентам администрирование?
     
    #3 Дюран, 22 ноя 2018
    Последнее редактирование: 22 ноя 2018
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @Дюран Тебе нужно разобраться с правами пользователей. Теми самыми приславутыми 777. Каждый сервис запускается от имени какого то пользователя. Припустим это apache а файлы у тебя залиты под пользователем duran с правами 644 в итоге смотреть файлы могут все а вот редактировать может только duran. Зато apache может создать свой файл если на директории 777 и вот тогда он уже сможет и читать и писать или 755 если пользователи в одной группе и т.д
     
  5. Дюран

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

    С нами с:
    9 мар 2018
    Сообщения:
    257
    Симпатии:
    19
    Я понимаю про права, ищу правильный вариант для lamp, что пока не пробовал, имеет недостатки.

    Вот пример проблем.
    Имею Убунту, все собрано руками, имею своего пользователя duran
    В var/www создаю директорию для своего сайта
    var/www/mysite.com
    и делаю ему владельца/группу www-data:www-data как говорят много где в т.ч. в прикрепленной теме этого раздела.
    Но получится что duran не может туда файлы свои кидать, а надо же, мне там разработку вести.
    Ну ладно добавляю duran в группу www-data.
    Теперь duran может создавать там свои объекты ФС.
    Но
    1) разрабатывая на YII, генерируя конфиги и код через GII, апач создает свои файлы по умолчанию с доступом 644 и duran не может их редактировать.
    т.е. надо umask апачу изменить чтобы создавал с 664
    2) Насчет директорий созданных duran-ом.
    Вот создал я директорию models, хочу чтобы gii туда модели создавал, но апач не имеет доступа к директориям дюрана на запись (у нее 775).
    Так что теперь www-data добавить в группу duran? А не проще уже тогда апач запускать под duran-ом?
    Или создал duran директорию свою и должен менять ей владельца на www-data (777 не хочу назначать)
    3) Тоже касается и файлов, созданных duran-ом, если апачу нужен доступ к ним, владельца им менять?

    Т.е. с 2-умя пользователями в одной папке как то все не сильно просто получается.
    Еще видел советы где директориям ставят владельца/групу duran:www-data и флаги s проставляют чтобы переносилось на новое, но также на практике это все не для всех сценариев работает и очень запутывает.
     
  6. ElisDN

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

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    На продакшене так и делают chown duran:www-data, не добавляя duran в группу www-data, и дают права 750 на папки и 640 на файлы.

    А на локальном девелоперском компьютере можете спокойно ставить 777 для gii и после генерации сделать обратно вручную chown.

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

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

    С нами с:
    9 мар 2018
    Сообщения:
    257
    Симпатии:
    19
    А вот эти пользователь/группа duran:www-data проставляются там всем каталогам и файлам?
    Просто думаю как это автоматизируется, не запоминать же что залил туда.
    Например гитом подтянул туда новое, у нового будет походу duran:duran и можно с корня_сайта вот этот рекурсивный chown -R корень_сайта.
    И останется следить что за пути надо открыть на запись группе www-data.
    Да?
    В смысле что тоже надо всем делать владельца/группу duran:www-data и на нее перенастраивать то что сгенерирует gii?
    А всякие git и composer из консоли работают, они будут duran:duran проставлять, это все фиксится вот этим рекурсивным chown от корня?
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Любая автоматизация делается с помошью bash-скриптов.
     
  9. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Как по мне то анзибль рулит. Никаких посредников что захотел то и сделал.