Я предпочитаю работать с сайтами, развернутыми на базе Веб-окружения BitrixVM, но, к сожалению, не всегда это удается.
Права доступа к объектам файловой системы разделяются на два ключевых параметра: владелец файла/папки и уровень доступа.
При работе с файловой системой сайта через ftp/sftp очень часто возникает ситуация, когда ftp-пользователь и системный пользователь, под которым функционирует сайт - это разные пользователи, с разными идентификаторами. Это приводит к тому, что файлы, измененные из административной панели 1С-Битрикс, могут быть недоступны для редактирования через ftp-подключение, и, наоборот (хотя такой вариант реже). Это приводит к тому, что нужно каждый раз производить правки владельца и уровня доступа.
Изменение прав на объект файловой системы осуществляется командой:
chown [-fhv] [-R [-H | -L | -P]] владелец [:группа ] файл ... chown [-fhv] [-R [-H | -L | -P]] :группа файл ...
После выполнения данной команды будет изменен владелец и/или группа для указанного пути. При этом возможны такие параметры:
-R- Данный параметр включаем рекурсию. Владелец и/или группа будут изменены для всего дерева каталога и файлов, начиная с указанного пути.-H- Если установлена опция "-R", - будет разрешено дальнейшее следование по ссылкам из командной строки.-L- Если установлена опция "-R", - будет разрешено дальнейшее следование по всем символическим ссылкам.-P- Если установлена опция "-R", - будет запрещено дальнейшее следование по ссылкам (поведение по-умолчанию).-f- Данный параметр отключает сообщения о неудачной попытке изменения владельца и/или группы.-h- Данный параметр работает для символических ссылок: если файл является символической ссылкой - будут изменены права только на саму ссылку-v- Режим вывода сообщений о ходе выполнения операции.
Если опция "-R" не задана, то опции "-H","-L","-P" будут проигнорированы. Кроме того, все оации переопределяют друг друга, поэтому будет выполнена та опция, которая указана последней.
На самом деле самый востребованный вариант - это просто поменять рекурсивно все вложенные папки и файлы по указанному пути:
chown -R user:group /some/path/to/folder
В результате будет изменен владелец и группа всех файлов и папок по указанному пути.
Для того чтобы сменить владельца к файлу, у пользователя, меняющего владельца, должен быть соответствующий уровень доступа. Чаще всего такую операцию осуществляют от имени root-пользователя.
А теперь о том, какие уровни доступа бывают:
- право на чтение;
- право на запись;
- право на исполнение.
Уровень прав доступа может быть задан для всех пользователей, без исключения, только для владельца файла или для всех пользователей, входящих в ту же группу, что и владелец.
Изменение прав доступа осуществляется командой:
chmod {a,u,g,o}{+,-}{r,w,x} filenames
Параметры команды:
a- все пользователиu- только владелецg- группа пользователейo- прочие пользователи+- добавление прав-- уменьшение правr- права на чтениеw- права на записьx- права на исполнение.
Немного примеров данной команды для большего понимания:
chmod a+r file- предоставляет всем пользователям права на чтение файлаchmod +x file- аналогично предыдущему - если никакие из набора символов a, u, g или o не указаны - это эквивалентно указанию символа achmod og-x file- лишает всех пользователей, кроме владельца, прав на исполнение файлаchmod u+rwx file- разрешает владельцу чистать, изменять и исполнять фай.chmod o-rwx file- запрещает читать, записывать и исполнять файл всем пользователям, кроме собственника файла или пользователей из группыchmod a-x file- отменяет разрешения на выполнение файла для всех пользователей и группchmod go-w file- отменяет право записи в файл группой и остальными пользователямиchmod u+x file- разрешает владельцу исполнять файлchmod g=u file- предоставляет группе те же права, что и у владельцаchmod go-rw file- отменяет право на чтение и право на запись в файл пользователям группы и другим пользователямchmod a+rwx *- предоставляет полные права всем пользователям на все файлы и каталоги в текущем каталогеchmod -R a+rwx *- предоставляет рекурсивно (включая все подкаталоги) полные права всем пользователям на все файлы и каталоги в текущем каталоге
Вот так можно менять права доступа и права владения для пользователей linux-систем.
Не забывайте, что внесение всех правок вы делаете на свой страх и риск, так что будьте осторожны и, если не совсем понимаете, что произойдет после ваших действий - лучше обратиться к специалисту в области администрирования.

