|
@@ -0,0 +1,112 @@
|
|
|
+# Права доступа к файлам Linux
|
|
|
+Права доступа к файлам в Linux – это не просто способ разграничения возможностей пользователей, а один из краеугольных камней системы безопасности, позволяющий контролировать, кто и каким образом может взаимодействовать с файлами и каталогами. Ниже приведён подробный обзор этой темы, включающий исторический контекст, практические примеры и дополнительные рекомендации по настройке системы.
|
|
|
+
|
|
|
+
|
|
|
+## 1. Базовая модель прав доступа
|
|
|
+
|
|
|
+Каждый файл или каталог в Linux обладает набором прав, определяющих возможности для трёх категорий пользователей:
|
|
|
+
|
|
|
+- **Владелец (user):** Это обычно пользователь, создавший файл или получивший его в наследство. Именно от владельца зависит первичный контроль за файлом.
|
|
|
+- **Группа (group):** Каждый файл ассоциируется с группой пользователей. Это позволяет централизованно управлять правами для нескольких пользователей, объединённых по функциональному или организационному признаку.
|
|
|
+- **Прочие (others):** Это все остальные пользователи системы, не входящие в первые две категории.
|
|
|
+
|
|
|
+Для каждой из этих категорий доступны три вида прав:
|
|
|
+
|
|
|
+- **Чтение (r):** Позволяет просматривать содержимое файла или список файлов в каталоге.
|
|
|
+- **Запись (w):** Предоставляет возможность изменять содержимое файла или изменять структуру каталога (например, добавлять или удалять файлы).
|
|
|
+- **Исполнение (x):** Позволяет запускать файл как программу или, в случае каталога, переходить в него и выполнять поиск по его содержимому.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+Разбивка строки:
|
|
|
+- Первый символ (`-`) указывает на тип файла (в данном случае обычный файл).
|
|
|
+- Следующие три символа (`rwx`) – права владельца.
|
|
|
+- Три символа после этого (`r-x`) – права группы.
|
|
|
+- Последние три символа (`r--`) – права для остальных пользователей.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 2. Символьная и числовая нотация прав доступа
|
|
|
+
|
|
|
+### Символьная нотация
|
|
|
+
|
|
|
+При помощи команды `chmod` можно изменять права доступа с использованием символьной нотации. Примеры:
|
|
|
+- `chmod u+x file` – добавить право на исполнение для владельца.
|
|
|
+- `chmod go-w file` – удалить право на запись для группы и прочих.
|
|
|
+
|
|
|
+### Числовая нотация
|
|
|
+
|
|
|
+Числовая нотация основывается на суммировании значений:
|
|
|
+- Чтение = 4
|
|
|
+- Запись = 2
|
|
|
+- Исполнение = 1
|
|
|
+
|
|
|
+Таким образом:
|
|
|
+- `7` (4+2+1) означает полный доступ (rwx).
|
|
|
+- `6` (4+2+0) – права на чтение и запись (rw-).
|
|
|
+- `5` (4+0+1) – права на чтение и исполнение (r-x).
|
|
|
+- `0` означает отсутствие прав (---).
|
|
|
+
|
|
|
+
|
|
|
+## 3. Дополнительные атрибуты и специальные биты
|
|
|
+
|
|
|
+В Linux, помимо стандартных прав, можно установить специальные биты, расширяющие функциональность системы безопасности:
|
|
|
+
|
|
|
+### SUID (Set User ID)
|
|
|
+- **Назначение:** При установке этого бита, при выполнении программы она запускается с правами её владельца, а не пользователя, запустившего её.
|
|
|
+- **Пример:** Многие утилиты, такие как `passwd`, используют SUID для доступа к системным файлам, необходимым для смены пароля.
|
|
|
+- **Установка:** `chmod u+s file`
|
|
|
+
|
|
|
+### SGID (Set Group ID)
|
|
|
+- **Назначение:** Аналог SUID, но для группы. При установке этого бита, созданные файлы в каталоге наследуют группу родительского каталога.
|
|
|
+- **Пример:** Это полезно для совместных рабочих каталогов, где требуется единообразие прав доступа.
|
|
|
+- **Установка:** `chmod g+s directory`
|
|
|
+
|
|
|
+### Sticky Bit
|
|
|
+- **Назначение:** Обычно используется для каталогов, например, `/tmp`. Этот бит запрещает удаление файлов из каталога пользователям, не являющимся владельцами этих файлов, даже если у них есть права записи в каталоге.
|
|
|
+- **Установка:** `chmod +t directory`
|
|
|
+
|
|
|
+
|
|
|
+## 4. Работа с POSIX ACL
|
|
|
+
|
|
|
+Помимо стандартных прав доступа, современные файловые системы в Linux поддерживают POSIX Access Control Lists (ACL). Это позволяет задавать более гибкие правила, чем базовая модель «владелец-группа-прочие». С ACL можно:
|
|
|
+- Назначать права отдельным пользователям.
|
|
|
+- Определять права для групп, отличных от основной группы файла.
|
|
|
+- Управлять наследованием прав в каталогах.
|
|
|
+
|
|
|
+Для управления ACL используются команды `getfacl` (для просмотра) и `setfacl` (для установки прав).
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 5. Установка базовых прав с помощью umask
|
|
|
+
|
|
|
+При создании новых файлов и каталогов права доступа определяются параметром `umask`, который задаёт маску прав, отнимаемую от максимальных возможных значений. Например:
|
|
|
+- Значение `umask 022` означает, что новые файлы будут создаваться с правами 644 (rw-r--r--) и каталоги с правами 755 (rwxr-xr-x).
|
|
|
+- Для настройки `umask` можно изменить файл профиля пользователя (например, `.bashrc` или `.profile`).
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 6. Системы обязательного контроля доступа (MAC)
|
|
|
+
|
|
|
+Для повышения уровня безопасности в Linux применяются системы MAC, такие как **SELinux** и **AppArmor**. Они предоставляют возможности:
|
|
|
+- Ограничить взаимодействие процессов с файлами на более детальном уровне.
|
|
|
+- Определить, какие приложения могут получать доступ к конкретным файлам, независимо от традиционных прав доступа.
|
|
|
+- Контролировать доступ на основе политик, заданных системными администраторами.
|
|
|
+
|
|
|
+Эти системы особенно полезны в корпоративных и серверных средах, где требуется максимальный контроль над доступом и минимизация возможных атак.
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 7. Практические рекомендации по управлению правами доступа
|
|
|
+
|
|
|
+- **Регулярно проверяйте права:** Используйте команды `ls -l`, `getfacl` для мониторинга прав доступа к важным файлам.
|
|
|
+- **Минимизируйте права:** Следуйте принципу минимальных привилегий – предоставляйте только те права, которые необходимы для выполнения задач.
|
|
|
+- **Используйте специальные биты с осторожностью:** Неправильная настройка SUID и SGID может привести к повышению прав злоумышленников.
|
|
|
+- **Настройка ACL:** В сложных системах с большим числом пользователей рассмотрите возможность использования ACL для более гибкого управления доступом.
|
|
|
+- **Документируйте изменения:** При внесении изменений в права доступа, особенно в критически важных каталогах и файлах, ведите журнал изменений для упрощения аудита и устранения проблем.
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Заключение
|
|
|
+
|
|
|
+Понимание и грамотное управление правами доступа в Linux – это ключ к защите данных и корректной работе системы. От базовой модели прав до использования ACL и систем MAC – каждая из этих технологий играет важную роль в обеспечении безопасности. Регулярная проверка, настройка и аудит прав доступа помогают предотвращать несанкционированный доступ и минимизировать риски, связанные с эксплуатацией системы.
|