Права доступа и типы пользователей к файлам и директориям в ОС Linux

18.05.2020 на прочтение 6 минут

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

Неверная настройка может привести к неработоспособности некоторого функционала или же полностью всего сайта. Также если предоставлять слишком много прав пользователям, это может повысить вероятность взлома, стандартными правами является значение 755(в битовой маске) для директорий и 644 для файлов.

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

Типы доступов

И так, типы доступов по пользователях делятся на:

  • владелец (user, u) — пользователь который является владельцем и имеет возможность изменять права доступа.
  • группа (group, g) — какая-то группа пользователей, которая должна иметь определенные общие права на файл/каталог, один и тот же пользователь может входить в несколько групп одновременно.
  • все другие (other, o) — любой пользователь, существующий в системе, который не относится к никаким выше перечисленным категориям.

Уровень доступа на указание, изменение владельца файлов и создание новых групп пользователей и т.д. имеет спец-пользователь в системе под именем root, так как данному пользователю по-умолчанию уже принадлежать все права и привилегии в управлении процессами. 

Права пользователей

В каждого с этих пользователей могут быть свои права на определенные действия по отношению к указанному файлу/директории, и делятся они условно на 3 типа:

  1. Права на чтения (read, обозначается как: r или «4» в битовой маске) — право читать файл например, с помощью  текстового редактора или просматривать содержимое директории.
  2. Права на запись (write, обозначается как: w  или «2» в битовой маске) — право делать запись и редактирование в файле, или создавать и удалять файлы в каталоге.
  3. Право на исполнение (execute, обозначается как: x  или «1» в битовой маске) — право запускать файл (программу, записанную в файле) или переходить в саму директорию, если при этом нет права на чтение, тогда пользователь просто не увидит наполнение папки.

Практический пример

Рассмотрим это на практическом примере, используя команду  ls -l выведем на экран список всех директорий и файлов на сервере с указанными правами. 


На скриншоте вверху первая буква обозначает тип файла, в Linux существуют следующие типы файлов:

  • -  -  простой файл;
  • d - директория;
  • l - символическая ссылка;
  • c - файл символьного устройства;
  • b - файл блочного устройства;
  • s - файл локального сокета;
  • p - канал.

Дальше для 3 типов пользователей в установленном порядке по 3 бита для каждого прописываются права на r - чтение, w - запись и  x - выполнение. То есть по очереди для владельца директории/файла, потом для группы и затем для остальных пользователей.

Все символы пишутся слитно - не разделяются пробелами, на скрине мы их выделили разными цветами, чтобы на первых порах не путаться и уловить саму суть символьного представления. Еще важный момент, если на месте буквы идет прочерк (символ “-”) это значит, что для этих пользователей нет указанного права. 

Например, для директории tmp(см. скриншот) для владельца директории есть в наличие все полностью права, для группы имеем установленные права на чтение и выполнение, а для остальных пользователей имеются на чтение и выполнение. Дополнительно можно видеть, что отсутствуют права для группы и остальных пользователей на запись. 

  Числовое представление прав доступа 

Все эти права можно задать не только символами, а подать и числами. Для наглядности разберем как формируются эти стандартные значения 755 и 644, составив такую таблицу. Где в первой строке будут указаны в установленном порядке (нужно именно так как в таблице снизу) типы пользователей. Во второй подача через символы, в третьей строке покажем как переводятся символы в численный эквивалент. И в четвертой строке  как формирируется окончатльное значение по всем 3 типам пользователей, здесь будет проводится суммирование по трем полученным числам.

 

Владелец

Группа

Остальные пользователи

Символами

rwx

r-x

r-x

Числами

4-2-1

4-0-1

4-0-1

Итог(суммируем)

4+2+1=7

4+0+1=5

4+0+1=5

 

Note: Здесь 0 - ставится на месте отсутствия права, все другие числа мы уже рассматривали выше.

 В результате права доступа в символьном представлении rwxr-xr-x можно перевести и записать как 755,  по аналогии rw-r--r-- задается как 644.

 

Заключение

В этой статье собрана основная часть информации для общего понимания новичкам как устроена работа с файлами в Linux. Если вы наблюдаете у себя проблемы с правами доступа к файлам у нас на хостинге, специалисты тех.поддержки ГиперХост готовы 24/7 помочь отладить этот вопрос.


Close Screen
Maria Kholodnitska
Статей: 221
Оцените статью:


Спасибо за отзыв
Рейтинг: 5 из 5 Голосов: 3