Абсолютный и относительный вариант изменения прав доступа в Linux

Абсолютный и относительный вариант изменения прав доступа

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

Абсолютное добавление прав доступа

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

Один из примеров использования абсолютного способа добавления прав доступа — это команда chmod с абсолютными значениями (числовой способ задания прав):

  • chmod 755 файл — здесь ты явно устанавливаешь права:
    • Владелец файла получает права на чтение, запись и выполнение (7),
    • Группа получает права на чтение и выполнение (5),
    • Все остальные также получают права на чтение и выполнение (5).

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

Относительное добавление прав доступа

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

Относительное добавление прав осуществляется через символы +, -, =:

  • chmod +x файл — добавляет право на выполнение для всех пользователей, не изменяя другие права (чтение, запись).
  • chmod g-w файл — убирает право на запись для группы.
  • chmod u=rwx,g=rx,o=rx файл — устанавливает права для пользователя (u), группы (g) и других (o) через относительное изменение, но это скорее смешанный вариант, который меняет права сразу для нескольких категорий.

Примеры использования:

  1. Абсолютный способ: Команда chmod 644 файл задаст следующие права:
    • Владелец: чтение и запись,
    • Группа и другие: только чтение.
    Важно: этот способ полностью перезапишет все права.
  2. Относительный способ: Команда chmod o+w файл добавит право на запись для всех пользователей, кроме владельца и группы, но оставит остальные права без изменений.

Основные отличия:

  • Абсолютный способ задаёт точный набор прав, перезаписывая существующие права.
  • Относительный способ изменяет текущие права, добавляя или убирая отдельные элементы, не затрагивая остальные права.

Таким образом, в зависимости от твоих задач ты можешь либо полностью заменить права (абсолютный способ), либо тонко настроить уже существующие права (относительный способ).