- Недостаточно прав для изменения страниц с PHP кодом
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
- Почему у php недостаточно прав на перезапись файлов?
- Недостаточно прав для загрузки PHP файла?
- Продукты
- Управление сайтом
- Битрикс24
- Интернет-магазин + CRM
- Решения
- Для интернет-магазинов
- Каталог готовых решений
- Внедрение
- Выбрать партнера
- Проверить партнера
- Стать партнером
Недостаточно прав для изменения страниц с PHP кодом
Вот такая проблема не пойму как решить,
Создал нового пользователя, в группе пользователей Content editors из демо версии
Content editors назначил права Главный модуль – запись, Управление структурой сайта – только к доступным файлам.
В Структуре сайта назначил запись для всех папок для группы Content editors
страницы которые содержат фотогалереи и включаемы области при нажатии редактировать текущую страницу пишет ошибку
Недостаточно прав для изменения страниц с PHP кодом, что можно сделать, чтобы пользователи этой группы смогли редактировать такие страницы?
PHP код могут менять только администраторы. В противном случае о безопасности не может идти и речи.
Возможно в новом редакторе (готовится к выпуску) будет реализована возможность добавлять компоненты на страницу не только для администраторов.
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Почему у php недостаточно прав на перезапись файлов?
На тестовой реализовали оптимизацию изображений, через библиотеку imageMagick. Запускается через php скрипт. Всё отлично, переношу на бой — ошибка. Не хватает прав. Если только «запись» фала из публички открыта, тогда работает. Я поискал информацию, проверил под каким пользователем работает php, это стандартный www-data. На обоих серверах. Проверил в каких группах они состоят и оказалось, что нигде у них особых привилегий нет. Т.е. состоят в своей группе www-data. Владелец файлов — root и он состоит в какой-то дефолтной группе пользователей.
Вопрос в том, почему на тесте, при тех же условиях, я могу перезаписывать файлы, а на боевом — нет?
Может кто-то сталкивался с подобным? Какие тут варианты решений могут быть, что ещё можно проверить?
Средний 21 комментарий
Проверяйте права доступа у папки, в которой PHP (из-под Apache, то есть www-data) пытается что-то делать с файлом(ами). Ну и у файлов в этой папке, если нужно иметь доступ к уже существующим файлам.
P.S. Самое просто — сравнить владельцев/права той самой директории на тестовом сервере и на боевом сервере.
Ипатьев, под рутом я подключаюсь через фтп клиент, почему так сделали, я не знаю. Мне просто передали проект и такие уч. данные. Соответственно файлы закаченные по фтп, автоматически будут с этими правами. Это проблема?
Rsync’ом синхронизировать права и файлы между тестовым и боевым.
заодно сравнить из под кого запускается php/php-fpm на боевом и тестовом
и т.д.
MyQuestion, разумеется, это проблема. Причем проблема куда большая, чем мелкие неудобства с файлами.
Этот проект настраивал жопорукий админ, который сделал доступ по фтп для рута, и ещё, небось, без шифрования.
Собственно, у вас вариантов мало: либо делать доступ к файлам на чтение для всех (что, в общем случае, особой проблемы не должно создавать) либо делать владельцем файлов www-data.
Ну или настраивать по-человечески, создав нормального пользователя фтп, добавив в его группу пользователя ввв-дата, и сделав доступ на запись для группы
Ипатьев, ок, это понятно, не понятно только, как на тестовой это работает, когда владелец файлов — begetuser состоящий в группе «somegroup», а пользователь www-data состоит в группе «www-data». При этом скрипт работает без проблем. Если у меня php user это www-data, тогда вариантов, что апач запускает php из под пользователя begetuser нет, так?
А если www-data добавить в группу рута? И дать пользователям группы право на запись? Пользователь может состоять только в одной группе?
добавлять пользователя, под которым выполняется РНР, в группу рута — это тушить пожар бензином.
спрашивать нас как работает, описывая свои проблемы невнятными репликами — занятие бессмысленное.
«Мальчик жестами показал, что его зовут Хуан».
Нет никакой гарантии, что ваши путанные описания соответствуют действительности
Нет никакой гарантии, что вы транслируете всю необходимую информацию. Например про апач вы упомянули только сейчас, и при этом так и не сообщили, по какой модели он работает — как модуль или фпм. Причем во втором случае с пхп файлами работает фпм, а не апач.
Вместо того чтобы задавать посторонним людям риторические вопросы «апач запускает php из под пользователя begetuser» надо просто взять и посмотреть. На своем сервере
Вариант не перезаписывать, а добавлять новый обработанный с новым именем, например с постфиксом _processed
Ипатьев, да я всё понимаю, но в то же время, Вас не интересует доп. информация. Я же просто не понимаю, какие мне тесты провести, что бы Вам стало понятней. Какую информацю кроме хоста, необходимо предоставить.
В целом оказалось, что права на тесте всё таки правильные. Ftp пользователь и пользователь php, один и тот же.
Я всё равно не понимаю, что плохого, что файлы и ftp от рута. ftp с шифрованием, sftp, если вы об этом )
Ипатьев, наверное.
в моем понимании на тестовой железяке сайт до водится до ума, тестируется на ошибки, если такое понимание есть в пэхэпэ. апосля оттестированный сайт деплоится на боевой и включается в работу.
pfg21, правильно.
Вот только зачем в этой схеме синхронизировать файлы? И ТЕМ БОЛЕЕ — с тестового на боевой?
Ипатьев, дык стандартно, чтобы было меньше ошибок в мелочах переноса. а то получится на тестовом одно (проверенное и отработанное), а на боевом другое (в принципе то что и произошло у %ts%).
pfg21, вы, видимо, все-таки не понимаете, что такое тестовый сервер.
В том смысле что никогда с таким не работали. А воображаете себе каких-то розовых пони вместо него.
Потому что иначе столь дикая мысль просто не пришла бы вам в голову. Причем дикая по множеству причин.
Вы, видимо, не в курсе, что, к примеру, версия программных файлов на тестовом сервере всегда больше, чем стабильная версия на боевом. Просто в силу самого смысла тестового сервера. На котором тестируются новые версии кода.
Или вы зачем-то предлагаете держать на тестовом сервере полную копию пользовательских файлов с боевого. Хотя на тестовом эти файлы сто лет в обед не нужны, и будут только занимать место.
Ну и зачем-то вы предлагаете выливать на боевой сервер любые бредовые картинки, которые заливаются на тестовый при проведении тестов. Отличная идея, да.
Ипатьев, аз ю виш мастэ 🙂
в моем понимании когда сайт протестирован на тестовом и все вопросы утрясены, то с тестового клонируется/деплоится его состояние на боевой.
да, на тестовом имеет полноценно рабочая копия сайта. или несколько тестовых веток сайта, с вероятностью недоделок и всего такого. плюс в загашнике набор архивов релизных состояний сервера, бекапы и все такое.
если тестовый упадет, развалится или бахнет в небо синим дымом то проблем не будет.
на боевом же никаких редактирований, изменений, ковыряний нет. только клонирование с тестового. минимум сторонних/лишних функций — минимум точек вскрытия, минимум вариантов для падения. минимум времени простоя, даже для перехода на новую версию.
если ты пилишь сайт вживую на боевом сервере, то тебе можно только посочувствовать. 🙂
pfg21, вы продолжаете разговаривать с розовыми пони в своей голове 🙂
Собеседник вам для этого не нужен, продолжайте самостоятельно
как именно запускается? Через SSH-консоль, через вебсервер, может через крон? Это все может быть под разными пользователями.
Для начала разобраться какие пользователи вообще замешаны. Для этого на боевом сервере делаешь эксперимент:
создаешь файлик от имени обычного скрипта, от имени вашего опртимизатора, и от имени фтп-заливки.
Вот прям создай папочку «test» и залей в нее hello_ftp.txt через ftp
Затем из php скрипта сделай file_put_contents(‘test/hello_php.txt’, ‘foo’);
И в оптимизатор тоже добавь похожее file_put_contents(‘test/hello_optimizator.txt’, ‘foo’);
Затем зайди через SSH в папку test, напиши ls -l
Если SSH нет, то можно опять-же сделать скриптом
$files = glob('/path/to/test/*'); foreach ($files as $fn) < echo $fn . ' | ' . fileowner($fn) . '
' . PHP_EOL; >
Скорее всего найдутся отличия. Останется придумать как изменить способ запуска, чтобы проблема не поворялась в будущем, ну и поправить владельца у уже существующих файлов (chown).
из админки по клику, регистрируется событие, запускается обработчик. Получается через вебсервер.
Спасибо, я проверил, у меня выходит так, что на тестовом, и php и пользователь ftp работают из под одного и того же пользователя. А на боевом, ftp из под рута, а php из www-data. Хотя функция whoami, почему-то говорила, что php пользователь www-data. Скорее всего я просто перепутал.
Я так понимаю, www-data, такой пользователь прописан в apache, тогда вопрос — безопасно ли менять пользователя www-data на root, что бы скрипты выполнялись из под рута?
Или всё таки лучше создать нового пользователя и рекурсивно сменить владельца?
MyQuestion, если вы запустите php из-под рута, то любая дыра в php даст злоумышленнику рутовый доступ к серверу.
И подход «да какому хакеру нужен мой сервер, там ничего нет важного» не работает. Вас будут ломать боты, чтобы с вашего сервера еще кого-нибудь ломать или DDOS-ить.
Недостаточно прав для загрузки PHP файла?
Создали пользователя дали ему полный доступ к папке, но при попытке загрузить php файлы или файлы начинающиеся на точку появляется ошибка.
Если на php файл нажать правой кнопкой то в открывшемся меню нет пункта редактировать как PHP.
А если на файле меню нажать правой кнопкой и выбрать редактировать как текст или как html то открывается пустое окно для редактирования и появляется ошибка «Название файла не должно начинаться с точки!»
А администратор загрузить/редактировать файлы может? Есть подозрение что папка была создана по ssh/ftp и на нее у битрика нет прав.
Цитата |
---|
Андрей Николаев написал: А администратор загрузить/редактировать файлы может? Есть подозрение что папка была создана по ssh/ftp и на нее у битрика нет прав. |
Да администратор может работать с файлами у него полный доступ.
Более того, пользователь имеет доступ к любому разделу сайта и может удалять любые файлы! Даже те самые начинающиеся на точку и с расширением php, а вот при загрузке получается ошибка.
Эм.. я не говорю про доступ в битриксе (номинальный), я говорю про фактически — загрузить файлы в папку он может (была ли такая попытка)? отредактировать файл может (были ли такая попытка)?
Андрей Николаев, да под учетной записью администратора выполняются все операции с файлами php, естественно пробовали.
да, папка доступна для записи.
Насчет загрузки файлов, подозреваю, что нет, но не вижу ничего подобного в настройках.
Оу. сорри. Перечитал тему еще раз более внимательно — загружать скриптовые расширения может только администратор.
Если Вы не администратор то не сможете загрузить php-файл.
Да похоже на то, нашел подобную тему недавно.
А возможно в Битрикс добавить пользователя в группу администраторов и дать доступ только к одной папке сайта, где он сможет редактировать скрипты?
Или если пользователь в группе администраторов он в любом случае сможет редактировать любые разделы на сайте?
Цитата |
---|
nick-ev написал: Или если пользователь в группе администраторов он в любом случае сможет редактировать любые разделы на сайте? |
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507
© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности