Explorar o código

Merge branch 'master' of http://213.155.192.79:3001/ypv/EASvZI

ypv hai 2 meses
pai
achega
04bfe70bcd

+ 112 - 0
Лекции/1.5.255_Права_доступа_файлам_Linux/1.5.255_Права_доступа_к_файлам_Linux.md

@@ -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 – каждая из этих технологий играет важную роль в обеспечении безопасности. Регулярная проверка, настройка и аудит прав доступа помогают предотвращать несанкционированный доступ и минимизировать риски, связанные с эксплуатацией системы.

+ 14 - 0
Лекции/1.5.255_Права_доступа_файлам_Linux/Voprosi.md

@@ -0,0 +1,14 @@
+Какие три категории пользователей определяют права доступа к файлу в Linux? 
+Владелец (user), группа (group), прочие (others) 
+
+Что означает числовое значение 5 в правах доступа?  
+Права на чтение и исполнение (r-x: 4 для чтения + 1 для исполнения) 
+
+Для чего используется Sticky Bit в каталогах Linux?  
+Чтобы запретить удаление файлов пользователями, не являющимися их владельцами, даже если у них есть права записи в каталоге (пример: `/tmp`).  
+
+Какие команды позволяют работать с POSIX ACL? 
+`getfacl` (просмотр прав) и `setfacl` (установка прав).  
+
+Какие права будут у нового файла при значении umask 022?  
+ 644 (rw-r--r--) для файлов и 755 (rwxr-xr-x) для каталогов.