We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Аудит прав доступа к файлам в Termux и Linux: SELinux, AppArmor и Fine‑grained ACL

Подробный гид по аудиту файловых прав в Termux и Linux: как использовать SELinux, AppArmor и ACL для усиления безопасности и контроля доступа.

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Типичные задачи
SELinuxMACКонтекст файлов и процессовДа (в режиме Enforcing/Permissive)Изоляция приложений, защита от эксплойтов
AppArmorMACПрофили приложенийНет (только на обычных Linux)Блокировка нежелательных системных вызовов
Fine‑grained ACLDAC (расширенный)Права для отдельных пользователей/группДа (через 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. Свяжитесь с нами для профессионального консалтинга и поддержки.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект