При разработке сайтов рано или поздно нам всем приходится сталкиваться с таким понятием как права на файлы и папки в Unix/Linux системах. А точнее даже не столько с самим понятием, сколько с проблемами в связи с неправильными правами. Все мы выросли на системе windows и сложное понятие прав поначалу кажется пугающим. Что ещё хуже, кто начинает работать с Битриксом, зачастую ошибочно считает, что это исключительно проблема нашего продукта. [spoiler] Вот уж чего мне точно не следует делать, это переписывать множественные описания прав Unix. Приведу очень короткий ликбез и вариант решения проблемы.
А почему вообще возникает проблема?
Разберёмся по порядку. Unix/Linux - многопользовательская система, это значит, что в системе одновременно могут работать несколько пользователей в своих папках со своими файлами. По умолчанию права ставятся так, что один пользователь может читать, но не может изменять файлы другого. Но это вроде бы и понятно, ведь мне не надо чтобы мои файлы менял сосед Вася, который тоже имеет аккаунт на этом сервере. Однако, возникает другой вопрос: почему я не могу изменить, мои же файлы, которые я сам закачал на сервер? Дело всё в том, что для загрузки файлов и работы с ними через веб интерфейс (иначе говоря, через Битрикс) используются разные программы (ftp и веб сервер), и для операционной системы это разные пользователи. А вот для того чтобы решить проблему взаимной записи, необходимо установить специальные права на файлы и папки (требуемые права зависят от того, под какими пользователями работают ftp и веб сервер, к каким группам принадлежат; на каждом хостинге эта настройка специфическая, необходимо уточнить вопрос у хостера).
К чему это приводит?
Типовая ситуация: хочу через ftp изменить файлы моего сайта, не даёт сохранить изменения. Значит надо пользователю веб сервера разрешить запись в свои файлы для пользователя ftp. Это можно сделать через несложный скрипт:
После запуска скрипт спросит путь к папке, в которой надо изменить права относительно корня сайта и сами права на папки. На файлы он автоматически сбросит атрибут "x" - исполнение. Если это не требуется, замените строку
$file_perm = $perm ^ 0111;
на
$file_perm = $perm;
Но возможна и обратная ситуация.
Закачал файлы через ftp, пытаюсь изменить через панель управления Битрикса, получаю ошибку записи. Как быть? Надо пользователю ftp разрешить запись для пользователя веб севера, иными словами, выставить права. Например, на моём хостинге права нужны 0771. Можно установить права через клиент ftp с поддержкой рекурсивного изменения прав на папки, но это плохой вариант в случае когда речь идёт о большом числе файлов и папок. Почему? Потому что, скажем, для изменения прав на 100 файлов потребуется отправить спец. команду как минимум 100 раз (если есть подпапки - то ещё и для них). Плюс к этому передаётся куча служебной информации. В итоге эта операция может занять довольно продолжительное время даже при хорошем канале Интернет. На помощь приходит протокол ssh, который позволяет выполнить команду непосредственно на удалённом сервере. Берём замечательную бесплатную программу PuTTY, подключаемся к своему сайту, переходим в нужную директорию используя команду cd cd /path/to/dir (/path/to/dir уточняем у хостера), затем собственно chmod: chmod -R 0771 . Здесь параметр -R указывает, что необходимо изменить права на все папки и подпапки, 0771 указывает требуемые атрибуты доступа, . есть указание на текущую директорию.
Обратите внимание
чтобы избежать проблем с правами при установке продукта - лучше всего воспользоваться скриптом bitrix7setup. Он скачает и распакует дистрибутив с нашего сайта, при этом файлы будут принадлежать веб серверу и проблем при работе через Битрикс не возникнет;
ftp и ssh сервисы в большинстве случаев позволяют авторизоваться под одним и тем же пользователем, значит можно закачать файл через ftp, а изменить права через ssh;
пользователь может изменить права только на свои файлы. Это значит, что если вы не можете из панели управления Битрикса изменить файл - не стоит пытаться применять веб скрипт, меняйте права через ftp/ssh. И наоборот;
панель управления на хостинге чаще всего с целью безопасности работает под третьим пользователем, поэтому в борьбе с правами она скорее всего не поможет.
Если материал не помог - пишите в комментариях, дополню, что надо
А можно по подробней о проблемме когда пытаешься изменить файлы через ПУ битрикса, права нужно выставлять на какую то часть сайта, или на всю папку с сайтом и все что в ней лежит? И что необходимо знать для работы с PuTTY, я пробовал её запускать но постоянно ошибка подключения выбивала. Можно ли реализовать это при помощи total commander?
Т.к. общение со службой поддержки затянулось, а телефона у нее вообще нет, и время демо-версии неумолимо идет, то попробую задать вопрос здесь... Демо-версия (Старт) установлена не на хостинге, а на моем компьютере. ОС - Windows 7. При попытке что-либо поменять (например, добавить страницу в меню) появляется ошибка "Не удается открыть файл". Проверка доступа в Битриксе выдает ошибку "Не удается открыть/изменить файлы..." и идет перечисление всех файлов, относящихся к сайту. Что сделать, чтобы доступ появился и наконецто можно было начинать изучать Битрикс?
Случайно не в C:\Program Files установили? Если да - UAC Windows 7 всему причиной. Поставьте в другую папку или запускайте Веб-окружение (о нем идет речь? ) от имени администратора.
Теперь все заработало вроде. Жаль, что техподдержка Битрикса адекватно не смогла ответить конкретикой на конкретно поставленный и четко сформулированный вопрос. Появился повод задуматься, все ли будет гладко после приобретения коммерческой версии...
У меня на хостинге основной сайт и в папке на поддомене сайт на битриксе. Я администратор и единственный пользователь, а битрикс не дает грузить файлы ни через ftp, ни через админпанель битрикса. Обращения в службу поддрежки гласят: "уточните у администратора хостинга данный вопрос". Попытка прикрыть свой непрофессионализм проблемами на хостинге? Другие cms прекрасно работают, этот поддомен на другой cms тоже прекрасно работает. Я думаю, что у разработчиков битрикса мания преследования раз они режут права от самих же администраторов сайта.
кто начинает работать с Битриксом, зачастую ошибочно считает, что это исключительно проблема нашего продукта
Нет это хостер взял и вручную права только на папки битрикса порезал. Ну не нравится ему данный пп. Да, накипело. Вторую неделю шпыняют две техподдержки друг к другу. Никто ни при делах.
По скрипту не ясно как его запускать. Это файл создать нужно или как? Что-то я не наблюдаю командной строки нигде...
На проверке сайта есть тестирование конфигурации и страница проверки доступа. Если при тестировании загрузки файлов и проверке прав есть ошибки, проблема хостинга, иначе - битрикса.
Доброго времени суток. Вот столкнулся с такой проблемой,отсутствием прав для внесения изменения на свой сайт. Только вот не понимаю как воспользоваться данным скриптом, по какому пути его залить. Просто не хочется наделать глупостей и хотелось бы что точно знать как воспользоваться. Буду весьма благодарен кто поможет мне. а то долго мучаюсь уже,да и время поджимает.
вот мои контакты skype - murad886 e-mail - murad_2008.88@mail.ru
доброго времени суток. у меня битрикс 4.2 все права стоят верно. перезалили разрабы сайт и убили тем самым лицензию при попытке реактивировать ругается и никак вообще не хочет дружить.
Здравствуйте, подскажите, если можно. Поменяли площадку на хостинге-нужна было более новая верся PHP. И теперь изменение последних двух цифр в правах доступа к фауйлу ничего не дает. Необходимо менять первую цифру. Техподдержка ответила, что скрипты теперь исполняются от имени пользователя площадки, а не от пользователя wwwserver. То есть чтобы скрипты не исполнялись, нужно делать на них права 444, например (будут права только на чтение), или 000. Либо делать права на каталог 666 (чтобы не было прав на исполнение в каталоге). Либо указывать в файле .htaccess правила на запрет обращения к скриптам. Я так понимаю, что изменить в файле .htaccess можно, но это надо весь сайт перебрать. Подскажите,пожалуйста, что лучше сделать: поменять хостинг?[*]чтобы избежать проблем с правами при установке продукта - лучше всего воспользоваться скриптом bitrix7setup. Он скачает и распакует дистрибутив с нашего сайта, при этом файлы будут принадлежать веб серверу и проблем при работе через Битрикс не возникнет; Я так и сделала при установке, а техподдержка пишет обратное, что скрипты теперь исполняются от имени пользователя площадки. Что делать? Надеюсь на совет. Наталья
видимо накипело ...
Да, много вопросов и непонимания.
Т.к. общение со службой поддержки затянулось, а телефона у нее вообще нет, и время демо-версии неумолимо идет, то попробую задать вопрос здесь...
Демо-версия (Старт) установлена не на хостинге, а на моем компьютере. ОС - Windows 7.
При попытке что-либо поменять (например, добавить страницу в меню) появляется ошибка "Не удается открыть файл". Проверка доступа в Битриксе выдает ошибку "Не удается открыть/изменить файлы..." и идет перечисление всех файлов, относящихся к сайту. Что сделать, чтобы доступ появился и наконецто можно было начинать изучать Битрикс?
Заранее благодарен все, кто попробует помочь.
Теперь все заработало вроде.
Жаль, что техподдержка Битрикса адекватно не смогла ответить конкретикой на конкретно поставленный и четко сформулированный вопрос. Появился повод задуматься, все ли будет гладко после приобретения коммерческой версии...
Да, накипело. Вторую неделю шпыняют две техподдержки друг к другу. Никто ни при делах.
По скрипту не ясно как его запускать. Это файл создать нужно или как? Что-то я не наблюдаю командной строки нигде...
Если при тестировании загрузки файлов и проверке прав есть ошибки, проблема хостинга, иначе - битрикса.
Только вот не понимаю как воспользоваться данным скриптом, по какому пути его залить.
Просто не хочется наделать глупостей и хотелось бы что точно знать как воспользоваться.
Буду весьма благодарен кто поможет мне. а то долго мучаюсь уже,да и время поджимает.
вот мои контакты
skype - murad886
e-mail - murad_2008.88@mail.ru
у меня битрикс 4.2
все права стоят верно.
перезалили разрабы сайт и убили тем самым лицензию
при попытке реактивировать ругается и никак вообще не хочет дружить.
Я так понимаю, что изменить в файле .htaccess можно, но это надо весь сайт перебрать.
Подскажите,пожалуйста, что лучше сделать: поменять хостинг?[*]чтобы избежать проблем с правами при установке продукта - лучше всего воспользоваться скриптом
Надеюсь на совет. Наталья