Как устроена базовая модель прав доступа к файлам в Linux

Ответ

Базовая модель прав доступа в Linux основана на трёх сущностях (владелец, группа, остальные) и трёх типах разрешений (чтение, запись, выполнение). Эта система является основой безопасности в многопользовательских окружениях.

Структура прав:

  1. Субъекты (для кого):

    • owner (u): Владелец файла или каталога.
    • group (g): Группа, к которой принадлежит файл.
    • others (o): Все остальные пользователи системы.
  2. Разрешения (что можно делать):

    • r (read): Право на чтение содержимого файла или списка файлов в каталоге. (Числовое значение: 4)
    • w (write): Право на изменение файла или создание/удаление файлов в каталоге. (Числовое значение: 2)
    • x (execute): Право на запуск файла как программы или вход в каталог. (Числовое значение: 1)

Права задаются для каждого субъекта отдельно. Например, rwxr-xr-- означает, что владелец может читать, писать и выполнять (rwx), группа — читать и выполнять (r-x), а остальные — только читать (r--).

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

Команда chmod изменяет права доступа. Числовой формат является суммой значений для каждого субъекта.

# Установить права 755 (rwxr-xr-x) для скрипта
# Владелец: 7 (4+2+1 = rwx)
# Группа:   5 (4+0+1 = r-x)
# Остальные: 5 (4+0+1 = r-x)
chmod 755 my_script.sh

# Посмотреть результат
ls -l my_script.sh
# Вывод: -rwxr-xr-x 1 user user 1024 Oct 26 10:00 my_script.sh

Для смены владельца и группы используются команды chown и chgrp соответственно.