semanage Генератор команд
Сгенерировать команды semanage для управления сопоставлениями политики SELinux (fcontext, login, user, port, boolean)
Начало работы с semanage
## Что такое semanage?
`semanage` отвечает за управление сопоставлениями правил SELinux — метками, которые указывают ядру, что процесс, файл, порт или входящий пользователь *имеет право* делать. Он сам по себе не переключает режим строгого/простого контроля (это делает `setenforce`); вместо этого он настраивает постоянные сопоставления, которые используются в правилах SELinux.
## Как использовать
1. **Выберите объект**: `fcontext` (метки файлов), `login` (сопоставление Linux-пользователя → SELinux-пользователя), `user`, `port` или `boolean`. 2. **Выберите действие**: `add` (`-a`), `modify` (`-m`), `delete` (`-d`) или `list` (`-l`). 3. **Укажите тип SELinux** (`-t`) и **значение** (регулярное выражение пути, порт, пользователь и т. д.). 4. **Примените контекст файла**: После изменений в `fcontext` запустите `restorecon`, чтобы существующие файлы были перемаркированы. 5. **Копируйте и запускайте**: Добавьте в начало команды префикс `sudo`.
Объекты, действия и опции
### `fcontext` Сопоставления контекста файлов Свяжите регулярное выражение пути с типом SELinux. После добавления или изменения выполните `restorecon -Rv /path` для переименования существующих файлов: `semanage fcontext -a -t httpd_sys_content_t '/web(/.*)?'`.
### `login` Сопоставление пользователей Linux → пользователей SELinux Сопоставьте логин в Linux (или `__default__`) с пользователем SELinux, например, `semanage login -a -s user_u john`.
### `user` Пользователи SELinux Создайте или измените пользователей SELinux и роли, которые они могут занимать.
### `port` Сопоставления портов → типов Присвойте метку сетевому порту, чтобы ограниченный сервис мог к нему подключаться: `semanage port -a -t http_port_t -p tcp 8080`.
### `boolean` Логические операторы политики Включите или выключите указанный логический оператор, чтобы изменить поведение политики (`semanage boolean -m --on httpd_can_network_connect`).
### Действия `-a` / `-m` / `-d` / `-l` Добавьте новое сопоставление, измените существующее, удалите его или выведите список текущих сопоставлений.
▶Что такое контекст SELinux и почему он важен?
▶Я добавил правило fcontext, но httpd по-прежнему не может читать файлы — почему?
▶Как разрешить сервису прослушивать порт, отличный от стандартного?
Если этот инструмент оказался полезным для вас, подумайте о том, чтобы подарить мне кофе.
Купите мне кофе.