Доступ запрещен - как исправить
Re: Доступ запрещен - как исправить
Надо чтоб у всех папок был один пользователь в группе пользователя веб сервера. Над этим и работаю
Re: Доступ запрещен - как исправить
А php, запускаемый nginx, под тем же получается пользователем, и если на сайте уязвимость, то php сможет переписать файлы с кодом проекта.proctoleha писал(а): ↑2019.03.25, 06:34 1. У меня web директория с проектами принадлежит текущему пользователю, под которым я работаю
2. Nginx также работает от имени текущего пользователя.
Re: Доступ запрещен - как исправить
Заработало. Здесь главное порядок телодвижений. Сначала назначить всему проекту пользователя www-data из группы пользователей.
Потом уже править права на 777
Проблема была при создании папки, куда надо было записать картинки. Несколько пользователей на папки в проекте(у меня был root www-data) не есть хорошо. В чужую папку картинка не запишется, даже если ее в процессе менять на другого пользователя-это не спасает. Главное до начала отправки/открытия в браузере проекта сразу опеределить пользователя, а потом права.
Потом уже править права на 777
Код: Выделить всё
root@ilin:/var/www/html/lema# chown -R www-data:www-data /var/www/html/lema
root@ilin:/var/www/html/lema# chmod -R 777 /var/www/html/lema/assets
root@ilin:/var/www/html/lema# chmod -R 777 /var/www/html/lema/web/assets
root@ilin:/var/www/html/lema# chmod -R 777 /var/www/html/lema/runtime
- proctoleha
- Сообщения: 298
- Зарегистрирован: 2016.07.10, 19:00
Re: Доступ запрещен - как исправить
Пример? Хотя бы теоретический? Есть что-то кроме общих слов?
Вот ситуация из моей практики, с пред. места работы
1. Есть vds c служебными сайтами, есть обычный пользователь, от имени которого работает отдельный php-fpm пул + nginx
2. Шеф решил попробовать поработать с сторонними разработчиками, и мне их нужно пустить на наш vds. Создал отдельного пользователя, все проекты также запускаются от его имени, пользователь ограничен только своими проектами.
Если бы оба пользователя, в примере выше, были бы в группе www-data, то такого жесткого разграничения не было бы. Подробности: https://xakep.ru/2017/01/11/nginx-custom-config/
И попутно: никаких проблем с правами доступа, все в домашней директории пользователя.
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Re: Доступ запрещен - как исправить
Правельно Согласен, рекурсивно определить пользователя и группу www-data для всего проекта от sudo, по крайней мере я так все локалки прописываю.SiZE писал(а): ↑2019.03.25, 09:27chesar писал(а): ↑2019.03.24, 23:14Код: Выделить всё
sudo chown -R www-data:www-data /var/www/html/lema
Эти две команды должны решить проблему, если php скрипт вызывается от пользователя www-data. И там не переопределены другие (ACL).Код: Выделить всё
sudo chmod -R g+rw /var/www/html/lema
Но чем гадать на кофейной гуще. Надо узнать в какую директорию нет прав.
Re: Доступ запрещен - как исправить
Я бы на твоем месте внес себя в группу www-data и потом от лида этой группы могла править файлы и назначать права на весь проект и папки в отдельности.svil писал(а): ↑2019.03.25, 11:03 Заработало. Здесь главное порядок телодвижений. Сначала назначить всему проекту пользователя www-data из группы пользователей.
Потом уже править права на 777Проблема была при создании папки, куда надо было записать картинки. Несколько пользователей на папки в проекте(у меня был root www-data) не есть хорошо. В чужую папку картинка не запишется, даже если ее в процессе менять на другого пользователя-это не спасает. Главное до начала отправки/открытия в браузере проекта сразу опеределить пользователя, а потом права.Код: Выделить всё
root@ilin:/var/www/html/lema# chown -R www-data:www-data /var/www/html/lema root@ilin:/var/www/html/lema# chmod -R 777 /var/www/html/lema/assets root@ilin:/var/www/html/lema# chmod -R 777 /var/www/html/lema/web/assets root@ilin:/var/www/html/lema# chmod -R 777 /var/www/html/lema/runtime
Re: Доступ запрещен - как исправить
К чему агрессия?proctoleha писал(а): ↑2019.03.26, 05:47 Пример? Хотя бы теоретический? Есть что-то кроме общих слов?
file_put_contents умеет записывать файлы , подходит пример?
Я не про разработку в команде, а про работу проекта на prodaction.
Если вебсервер(с пхп) работает под www-data и может только читать файлы с проектом, а записывать только в папку с логами и картинками(которые или вне доступа снаружи или защищены от выполнения php файлов), то безопасней получается же ?
- proctoleha
- Сообщения: 298
- Зарегистрирован: 2016.07.10, 19:00
Re: Доступ запрещен - как исправить
Агрессии нет. Есть желание разобраться. Я тоже говорю о production.Tommi писал(а): ↑2019.03.26, 09:12 К чему агрессия?
file_put_contents умеет записывать файлы , подходит пример?
Я не про разработку в команде, а про работу проекта на prodaction.
Если вебсервер(с пхп) работает под www-data и может только читать файлы с проектом, а записывать только в папку с логами и картинками(которые или вне доступа снаружи или защищены от выполнения php файлов), то безопасней получается же ?
Поэтому прошу, очень корректно, дайте какую-либо ссылку, или объясните о какой уязвимости идет речь. file_put_contents - пример не подходит, опять общие слова.
Я могу представить, что кто-то ломанул сервер, тем, или иным способом, получил доступ к учетной записи одного пользователя, и пользуясь тем, что этот пользователь входит в группу www-data, начинает читать, через симлинки, проекты др. пользователей, сам так смогу, если приспичит.
Поэтому очень корректно прошу еще раз: объясните на пальцах, на конкретных примерах, с названием вида уязвимости, чем плохо то, что php-fpm пул работает от имени текущего пользователя.
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Re: Доступ запрещен - как исправить
- proctoleha
- Сообщения: 298
- Зарегистрирован: 2016.07.10, 19:00
Re: Доступ запрещен - как исправить
Хм, вот к вам приходит врач и говорит: вы болеете, вам надо лечиться, и уходит. Вы ему вслед: доктор, а какая у меня болезнь-то? Он к вам оборачивается и говорит: я же вам по русски сказал: вы болеете, что непонятно?
Есть много видов уязвимостей сайта, какая из них может отработать, если php-fpm будет запущен от имени текущего пользователя? Если затрудняетесь указать тип уязвимости, опишите хотя бы примерный сценарий при котором могут наступить печальные последствия в данном случае.
И, да объясните мне что такое сайт. Как-то ушел я от этого понятия. Почему-то последние несколько лет приходится работать с web приложениями, которые решают достаточно объемные задачи.
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Re: Доступ запрещен - как исправить
Обычная дырка, на примере Wordpressовских - в js скриптах на фронтенде есть способ загрузить в каталог с картинками или плагинами - свой скрипт. И код плагина при каких-то сценариях сканирует эти каталоги, и запускает из них скрипты.
Минимальный уровень безопасности поэтому - это запрет php-fpm писать туда, куда ему не положено.
Неважно от какого пользователя - этот пользователь НЕ должен иметь прав на запись там где ему не нужно писать.
Если обновляете с помощью гита, то еще и читать папочку .git такому пользователю - нельзя.
А это почти все каталоги, кроме:
- каталогов картинок, которые отдаются в браузер
- каталоги runtime куда пишутся логи и файловые кэши
Для таких каталогов также должно быть предусмотрено что ничего из них пользователь php-fpm запустить не может.
на случай если подсунут какой-нить скрипт.
Если обновляетесь гитом то конечно от имени другого пользователя, с правами на запись.
Ну а если хакнули сам сервер, то есть получили возможность входа на него, это уже совсем другая история, и другие меры безопасности.
Минимальный уровень безопасности поэтому - это запрет php-fpm писать туда, куда ему не положено.
Неважно от какого пользователя - этот пользователь НЕ должен иметь прав на запись там где ему не нужно писать.
Если обновляете с помощью гита, то еще и читать папочку .git такому пользователю - нельзя.
А это почти все каталоги, кроме:
- каталогов картинок, которые отдаются в браузер
- каталоги runtime куда пишутся логи и файловые кэши
Для таких каталогов также должно быть предусмотрено что ничего из них пользователь php-fpm запустить не может.
на случай если подсунут какой-нить скрипт.
Если обновляетесь гитом то конечно от имени другого пользователя, с правами на запись.
Ну а если хакнули сам сервер, то есть получили возможность входа на него, это уже совсем другая история, и другие меры безопасности.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Тем более что окажется что оно вам и не нужно было, странное это.