lab3
This commit is contained in:
94
lab3/README.md
Normal file
94
lab3/README.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# Lab 3 — DAC + MAC
|
||||
|
||||
Система доступа к конфиденциальным данным с дискреционным (DAC) и мандатным (MAC) управлением доступом. Основана на Lab 2.
|
||||
|
||||
## Структура каталогов
|
||||
|
||||
```
|
||||
$PRACTICE3_DIR/ # по умолчанию /usr/local/practice3
|
||||
├── etc/
|
||||
│ ├── passwd # логин:sha256:id:права:ФИО
|
||||
│ ├── access_mode # BOTH | DAC_ONLY | MAC_ONLY
|
||||
│ ├── acl # матрица доступа (DAC)
|
||||
│ ├── subject_labels # метки субъектов (MAC)
|
||||
│ └── object_labels # метки объектов (MAC)
|
||||
├── confdata/ # конфиденциальные файлы
|
||||
├── bin/ # usermgr, confaccess, bruteforce
|
||||
└── log/ # usermgr.log, access.log
|
||||
```
|
||||
|
||||
## Режимы проверки доступа
|
||||
|
||||
| Режим | DAC | MAC |
|
||||
|-------|-----|-----|
|
||||
| BOTH (по умолчанию) | да | да |
|
||||
| DAC_ONLY | да | нет |
|
||||
| MAC_ONLY | нет | да |
|
||||
|
||||
Режим задаётся через `usermgr set-mode` (только root).
|
||||
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
chmod +x setup.sh
|
||||
|
||||
# для пути по умолчанию нужен root:
|
||||
sudo ./setup.sh
|
||||
|
||||
# для тестирования без root:
|
||||
PRACTICE3_DIR=/tmp/practice3 ./setup.sh
|
||||
```
|
||||
|
||||
## Использование
|
||||
|
||||
### usermgr — управление пользователями
|
||||
|
||||
```bash
|
||||
usermgr add alice
|
||||
usermgr list
|
||||
usermgr edit alice --full-name "Иванов Иван" --permissions rw
|
||||
usermgr edit alice --label 1 # метка субъекта (root only)
|
||||
usermgr set-label report.txt 2 # метка объекта (root only)
|
||||
usermgr set-mode DAC_ONLY # режим проверки (root only)
|
||||
usermgr show-mode # текущий режим (root only)
|
||||
usermgr passwd alice
|
||||
usermgr delete alice
|
||||
```
|
||||
|
||||
### confaccess — доступ к данным
|
||||
|
||||
```bash
|
||||
confaccess
|
||||
PRACTICE3_DIR=/tmp/practice3 confaccess
|
||||
```
|
||||
|
||||
Команды после аутентификации:
|
||||
|
||||
```
|
||||
create <file> создать файл (владелец = текущий пользователь)
|
||||
read <file> прочитать файл
|
||||
append <file> <text> дописать в файл
|
||||
copy <src> <dst> скопировать в confdata
|
||||
remove <file> удалить файл
|
||||
grant <user> <path> <perms> выдать права (только владелец)
|
||||
help / exit
|
||||
```
|
||||
|
||||
### DAC (дискреционный доступ)
|
||||
|
||||
- Каждый объект имеет владельца (создатель)
|
||||
- Владелец может выдавать права через `grant <user> <path> <perms>`
|
||||
- Права: r (чтение), w (запись), d (удаление)
|
||||
|
||||
### MAC (мандатный доступ, Белл–Лападула)
|
||||
|
||||
- Метки: 0 — несекретно, 1 — ДСП, 2 — секретно
|
||||
- Нет чтения сверху: субъект читает только объекты с уровнем ≤ своего
|
||||
- Нет записи вниз: субъект пишет только в объекты с уровнем ≥ своего
|
||||
|
||||
### bruteforce
|
||||
|
||||
```bash
|
||||
bruteforce alice
|
||||
bruteforce alice --max-length 4
|
||||
```
|
||||
Reference in New Issue
Block a user