✔️ Linux Permission System
1. Что это такое
Linux использует систему прав доступа, чтобы контролировать, кто может читать, изменять или выполнять файлы и директории.
Права задаются для трех категорий: user, group, others.
Linux permissions - основа безопасности: три набора прав, специальные биты и точный контроль доступа через chmod, chown, chgrp и ACL.
2. Категории прав
- User (владелец)
- Group (группа)
- Others (остальные)
Посмотреть права:
ls -l
Пример:
-rwxr-xr--
3. Типы прав
r (read)
- Файл: читать
- Директория: смотреть список
w (write)
- Файл: изменять или удалять
- Директория: добавлять и удалять файлы
x (execute)
- Файл: запускать
- Директория: переходить внутрь (cd)
4. Структура строки прав
10 символов:
[тип][user][group][others]
Пример:
drwxr-x---
d — директория
rwx — владелец
r-x — группа
--- — остальные
5. Изменение прав (chmod)
Символьный формат:
chmod u+x file
chmod g-w file
chmod o+r file
Числовой формат (r=4, w=2, x=1):
chmod 755 file
chmod 644 file
chmod 700 file
6. Смена владельца (chown)
sudo chown user file
sudo chown user:group file
7. Смена группы (chgrp)
sudo chgrp groupname file
8. Специальные биты: SUID, SGID, Sticky Bit
SUID
chmod u+s file
Пример: passwd
SGID
chmod g+s dir
Sticky Bit
chmod +t dir
Используется в /tmp
9. umask — права по умолчанию
Проверить: umask
Пример: umask 022 → новые файлы получат 644.
10. ACL — расширенные права
setfacl -m u:user:rwx file
getfacl file
11. Основные команды
chmod — менять права
chown — менять владельца
chgrp — менять группу
umask — настройки по умолчанию
setfacl — расширенные ACL
ls -l — просмотр прав
12. Лучшие практики
Не давать write для others
Использовать sticky bit в общих директориях
Настроить безопасный umask
Использовать ACL, когда прав недостаточно
Периодически проверять права