Немного о правах доступа в Linux-е

В системе Linux (как и в любой другой операционной системе) есть возможность разграничивать права доступа между пользователями системы. 

Я предпочитаю работать с сайтами, развернутыми на базе Веб-окружения 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 не указаны - это эквивалентно указанию символа a
  • chmod 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-систем.

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

Количество показов: 1755
13.11.2017

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.