Ошибка недостаточно прав php

Недостаточно прав для изменения страниц с 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

Читайте также:  Php ошибка при include once

Контент для лиц от 16 лет и старше

© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности

Источник

Почему у php недостаточно прав на перезапись файлов?

На тестовой реализовали оптимизацию изображений, через библиотеку imageMagick. Запускается через php скрипт. Всё отлично, переношу на бой — ошибка. Не хватает прав. Если только «запись» фала из публички открыта, тогда работает. Я поискал информацию, проверил под каким пользователем работает php, это стандартный www-data. На обоих серверах. Проверил в каких группах они состоят и оказалось, что нигде у них особых привилегий нет. Т.е. состоят в своей группе www-data. Владелец файлов — root и он состоит в какой-то дефолтной группе пользователей.

Вопрос в том, почему на тесте, при тех же условиях, я могу перезаписывать файлы, а на боевом — нет?
Может кто-то сталкивался с подобным? Какие тут варианты решений могут быть, что ещё можно проверить?

Средний 21 комментарий

ipatiev

Проверяйте права доступа у папки, в которой PHP (из-под Apache, то есть www-data) пытается что-то делать с файлом(ами). Ну и у файлов в этой папке, если нужно иметь доступ к уже существующим файлам.

P.S. Самое просто — сравнить владельцев/права той самой директории на тестовом сервере и на боевом сервере.

kawabanga

Adamos

Ипатьев, под рутом я подключаюсь через фтп клиент, почему так сделали, я не знаю. Мне просто передали проект и такие уч. данные. Соответственно файлы закаченные по фтп, автоматически будут с этими правами. Это проблема?

ipatiev

kawabanga

Rsync’ом синхронизировать права и файлы между тестовым и боевым.
заодно сравнить из под кого запускается php/php-fpm на боевом и тестовом
и т.д.

ipatiev

MyQuestion, разумеется, это проблема. Причем проблема куда большая, чем мелкие неудобства с файлами.
Этот проект настраивал жопорукий админ, который сделал доступ по фтп для рута, и ещё, небось, без шифрования.

Собственно, у вас вариантов мало: либо делать доступ к файлам на чтение для всех (что, в общем случае, особой проблемы не должно создавать) либо делать владельцем файлов www-data.
Ну или настраивать по-человечески, создав нормального пользователя фтп, добавив в его группу пользователя ввв-дата, и сделав доступ на запись для группы

ipatiev

Ипатьев, ок, это понятно, не понятно только, как на тестовой это работает, когда владелец файлов — begetuser состоящий в группе «somegroup», а пользователь www-data состоит в группе «www-data». При этом скрипт работает без проблем. Если у меня php user это www-data, тогда вариантов, что апач запускает php из под пользователя begetuser нет, так?

А если www-data добавить в группу рута? И дать пользователям группы право на запись? Пользователь может состоять только в одной группе?

ipatiev

добавлять пользователя, под которым выполняется РНР, в группу рута — это тушить пожар бензином.

спрашивать нас как работает, описывая свои проблемы невнятными репликами — занятие бессмысленное.
«Мальчик жестами показал, что его зовут Хуан».
Нет никакой гарантии, что ваши путанные описания соответствуют действительности
Нет никакой гарантии, что вы транслируете всю необходимую информацию. Например про апач вы упомянули только сейчас, и при этом так и не сообщили, по какой модели он работает — как модуль или фпм. Причем во втором случае с пхп файлами работает фпм, а не апач.

Вместо того чтобы задавать посторонним людям риторические вопросы «апач запускает php из под пользователя begetuser» надо просто взять и посмотреть. На своем сервере

Compolomus

Вариант не перезаписывать, а добавлять новый обработанный с новым именем, например с постфиксом _processed

Ипатьев, да я всё понимаю, но в то же время, Вас не интересует доп. информация. Я же просто не понимаю, какие мне тесты провести, что бы Вам стало понятней. Какую информацю кроме хоста, необходимо предоставить.

В целом оказалось, что права на тесте всё таки правильные. Ftp пользователь и пользователь php, один и тот же.
Я всё равно не понимаю, что плохого, что файлы и ftp от рута. ftp с шифрованием, sftp, если вы об этом )

Ипатьев, наверное.
в моем понимании на тестовой железяке сайт до водится до ума, тестируется на ошибки, если такое понимание есть в пэхэпэ. апосля оттестированный сайт деплоится на боевой и включается в работу.

ipatiev

pfg21, правильно.
Вот только зачем в этой схеме синхронизировать файлы? И ТЕМ БОЛЕЕ — с тестового на боевой?

Ипатьев, дык стандартно, чтобы было меньше ошибок в мелочах переноса. а то получится на тестовом одно (проверенное и отработанное), а на боевом другое (в принципе то что и произошло у %ts%).

ipatiev

pfg21, вы, видимо, все-таки не понимаете, что такое тестовый сервер.
В том смысле что никогда с таким не работали. А воображаете себе каких-то розовых пони вместо него.
Потому что иначе столь дикая мысль просто не пришла бы вам в голову. Причем дикая по множеству причин.
Вы, видимо, не в курсе, что, к примеру, версия программных файлов на тестовом сервере всегда больше, чем стабильная версия на боевом. Просто в силу самого смысла тестового сервера. На котором тестируются новые версии кода.
Или вы зачем-то предлагаете держать на тестовом сервере полную копию пользовательских файлов с боевого. Хотя на тестовом эти файлы сто лет в обед не нужны, и будут только занимать место.
Ну и зачем-то вы предлагаете выливать на боевой сервер любые бредовые картинки, которые заливаются на тестовый при проведении тестов. Отличная идея, да.

Ипатьев, аз ю виш мастэ 🙂
в моем понимании когда сайт протестирован на тестовом и все вопросы утрясены, то с тестового клонируется/деплоится его состояние на боевой.
да, на тестовом имеет полноценно рабочая копия сайта. или несколько тестовых веток сайта, с вероятностью недоделок и всего такого. плюс в загашнике набор архивов релизных состояний сервера, бекапы и все такое.
если тестовый упадет, развалится или бахнет в небо синим дымом то проблем не будет.
на боевом же никаких редактирований, изменений, ковыряний нет. только клонирование с тестового. минимум сторонних/лишних функций — минимум точек вскрытия, минимум вариантов для падения. минимум времени простоя, даже для перехода на новую версию.
если ты пилишь сайт вживую на боевом сервере, то тебе можно только посочувствовать. 🙂

ipatiev

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

Контент для лиц от 16 лет и старше

© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности

Источник

Оцените статью