Категории пользователей по отношению к файлу

Как и любая система, Unix-подобная операционная система GNU/Linux является многопользовательской. Это означает, что в системе могут одновременно или последовательно работать несколько пользователей, и каждый из них должен иметь свое файловое пространство с ограниченным доступом для других пользователей.

Следовательно, в Linux у каждого файла должны быть установлены особые атрибуты доступа, которые определяют права пользователей на взаимодействие с ним.

В Linux выделяются три категории пользователей, имеющих права доступа к файлам:

  • Владелец файла (u – user) – это тот, кто указан в атрибутах как хозяин файла. Обычно, пользователь, создавший файл, автоматически становится его владельцем.
  • Группа (g – group) – это совокупность пользователей, к которой принадлежит создатель файла. В Linux при создании нового пользователя создается одноименная группа, но системные средства позволяют формировать разные группы, объединяющие пользователей. Пользователь может одновременно принадлежать нескольким группам, что позволяет предоставлять определенный доступ ограниченному кругу лиц.
  • Все остальные (o – other) – это все, кто не является владельцем и кто не относится к группе владельца. Иными словами, это сторонние пользователи.

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

Основные действия, которые можно совершать с файлом, — это чтение, запись и выполнение. Каждая категория пользователей (владелец, группа, остальные) имеет отдельные права на выполнение этих операций.

Право на чтение (r – read) позволяет просматривать содержимое файла. Например, можно открыть текстовый файл для чтения. Но этого права недостаточно для внесения изменений, то есть текст и изображения остаются неизменными.

Право на запись (w – write) позволяет изменять файл, добавляя или заменяя информацию внутри него.

Право на выполнение (x – execution) актуально в основном для программных файлов, позволяя исполнять их содержащиеся в них инструкции.

Буквенная запись прав доступа

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

Первичные три записи являются правами владельца, вторичные три – правами группы, а последние три – для всех остальных пользователей. Присваивая каждому праву соответствующую букву, например, предоставив всем права, запись будет следующей:

rwxrwxrwx

Эта схема отображается в выводе команды ls -l. После символа типа файла справа указываются буквенные права доступа.

Вывод прав: ls -l

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

Права доступа к файлам в символьной нотации

Запись прав доступа с помощью чисел

Права доступа могут выражаться не только буквами. Используя 1 для обозначения предоставленного права и 0 для его отсутствия, можно представить файл, доступный для чтения всеми, но изменять который способен только владелец:

110100100

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

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

Права доступа к файлам в численной нотации

Не все возможные числа осмысленны. Например, сложно представить файл, который можно изменять, но нельзя читать. Распространенные числа: 4 – только чтение, 5 – чтение и выполнение, 6 – чтение и запись, 7 – все права.

Права доступа к каталогам

Каталог в Linux – это особый файл, содержащий список других файлов.

Права доступа к каталогам такие же, как и для файлов, однако их значение для каталогов имеет свою специфику.

Право на чтение позволяет узнавать только список файлов. Однако нельзя просматривать их свойства, такие как размер или даты изменения.

Право на исполнение дает возможность входить в каталог, просматривать и изменять файлы, если на них есть разрешение, а также узнавать их свойства.

Право на выполнение не позволяет изменять имена файлов внутри каталога, так как это влечет изменения самого списка каталога, что требует права на запись каталога.

Право на запись дает возможность изменять содержимое каталога — создавать, удалять или переименовывать файлы. Это делается даже с файлами, конкретный доступ к которым отсутствует, поэтому введен t-бит, ограничивающий операции пользователями только с их файлами.

Вытекают две особенности:

  • Доступ к файлу обеспечивается наличием права на исполнение для всех каталогов пути до него.

  • Возможно изменение файла при отсутствии права на запись в каталог, но право записи самого файла должно быть.

Вопросы для самопроверки:

  1. Какие три категории пользователей выделяются в Linux для определения прав доступа к файлам?
  2. Какие основные действия можно совершать с файлом по правам доступа в Linux?
  3. Что обозначает буквенная запись прав доступа rwxrwxrwx в контексте прав пользователей?
  4. Как права доступа выражаются с помощью чисел и что обозначает запись 110100100? 755?

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux