Termux – это терминал Android, который позволяет запускать полноценную Linux‑окружение на смартфоне. Несмотря на мобильный характер, безопасность файловой системы остаётся критически важной. В статье рассматриваются три ключевых механизма контроля доступа, применяемые в Linux и доступные в Termux: SELinux, AppArmor и Fine‑grained ACL. Мы покажем, как проводить аудит, какие инструменты использовать и какие практики рекомендуется внедрять.
Почему важен аудит прав доступа
Неправильно настроенные права могут привести к утечке данных, запуску вредоносного кода или эскалации привилегий. В мобильных устройствах, где приложения часто работают с общими ресурсами, риск повышается. Регулярный аудит позволяет выявить:
- Неожиданные разрешения для системных файлов.
- Открытые каталоги, доступные для всех пользователей.
- Отсутствие ограничения на выполнение скриптов в пользовательских директориях.
SELinux в Termux и Linux
Security‑Enhanced Linux (SELinux) реализует модель мандатного контроля доступа (MAC). В Android он включён по‑умолчанию в режиме enforcing. Termux наследует эту политику, поэтому любые изменения файлов должны соответствовать контексту безопасности.
Проверка состояния SELinux
getenforce
Если вывод Enforcing, политика работает в полном режиме. Для тестирования можно временно переключить в Permissive:
setenforce 0 # переключить в Permissive
getenforce # проверить статус
Важно помнить, что в Termux setenforce требует root‑доступа.
Аудит контекстов SELinux
Для просмотра текущего контекста файла используем ls -Z:
ls -Z /data/data/com.termux/files/home
Сравниваем полученный контекст с ожидаемым (например, u:object_r:app_data_file:s0). Если контекст отличается, файл может быть недоступен приложению или, наоборот, предоставить лишний доступ.
AppArmor – альтернатива SELinux
AppArmor реализует профиль‑ориентированную модель MAC и широко используется в дистрибутивах Ubuntu и openSUSE. В Termux AppArmor не доступен из‑за ограничений Android‑ядра, но в обычных Linux‑системах он часто применяется для изоляции приложений.
Работа с профилями AppArmor
Для включения профиля необходимо установить пакет apparmor и загрузить профиль:
sudo apt install apparmor apparmor-utils
sudo aa-enforce /etc/apparmor.d/usr.bin.someapp
Аудит текущих профилей:
sudo aa-status
Для получения детального лога нарушений используем journalctl:
journalctl -t kernel | grep apparmor
Fine‑grained ACL (Access Control Lists)
Традиционные права rwx ограничены тремя наборами (owner, group, others). ACL позволяет задавать произвольные правила для любых пользователей и групп.
Просмотр ACL
getfacl /data/data/com.termux/files/home/.ssh/authorized_keys
Установка ACL
Пример: предоставить пользователю alice право чтения и записи к каталогу ~/shared без изменения основных прав:
setfacl -m u:alice:rwX ~/shared
Для рекурсивного применения:
setfacl -R -m u:alice:rwX ~/shared
Аудит прав доступа с помощью ACL
Сгенерировать список файлов, где у пользователя bob есть расширенные права, можно скриптом:
find $HOME -type f -exec getfacl -c {} \; | \
awk '/user:bob/ {print FILENAME}'
Инструменты аудита в Linux
Ниже перечислены основные утилиты, которые помогают собрать полную картину:
auditd– демон аудита, собирает события ядра.ausearch– поиск по логам аудита.auditctl– настройка правил аудита в реальном времени.
Пример правила, фиксирующего попытки изменения прав на файлы в домашней директории:
auditctl -w $HOME -p wa -k home_perm_change
Получить события:
ausearch -k home_perm_change --format text
Сравнительный анализ
| Механизм | Тип модели | Уровень контроля | Поддержка в Termux | Типичные задачи |
|---|---|---|---|---|
| SELinux | MAC | Контекст файлов и процессов | Да (в режиме Enforcing/Permissive) | Изоляция приложений, защита от эксплойтов |
| AppArmor | MAC | Профили приложений | Нет (только на обычных Linux) | Блокировка нежелательных системных вызовов |
| Fine‑grained ACL | DAC (расширенный) | Права для отдельных пользователей/групп | Да (через setfacl/getfacl) | Тонкая настройка доступа к файлам |
Лучшие практики аудита в Termux
- Регулярно проверяйте статус SELinux:
getenforce. - Используйте
ls -Zиgetfaclдля контроля контекстов и ACL. - Включайте
auditd(если есть root) и задавайте правила для критических каталогов. - Не оставляйте каталоги с правом
777в домашней папке. - При работе с скриптами ограничьте исполнение через
chmod +xтолько тем файлам, которые действительно нужны.
Заключение
Аудит прав доступа в Termux и Linux – это набор взаимодополняющих технологий. SELinux обеспечивает глобальную изоляцию, AppArmor – профильный контроль, а Fine‑grained ACL позволяет точно настроить доступ для отдельных пользователей. Комбинируя эти инструменты и регулярно проверяя их состояние, вы существенно повышаете уровень защиты вашего мобильного и серверного окружения.
Если вы хотите внедрить комплексную систему аудита и контроля доступа в ваш проект, команда RybinskLab готова помочь: от настройки SELinux и AppArmor до разработки кастомных скриптов аудита и интеграции ACL. Свяжитесь с нами для профессионального консалтинга и поддержки.