No superuser binary detected в Termux: почему возникает ошибка и как её исправить

Сообщение No superuser binary detected. Are you rooted? в терминале Termux означает буквально следующее: команда попыталась вызвать бинарный файл su, но система его не нашла, потому что устройство не имеет root-прав либо root-среда настроена некорректно. Это не сбой самого Termux — приложение лишь сообщает, что запрошенное действие требует привилегий суперпользователя, которых в системе нет.

Чаще всего ошибка появляется при запуске команд вроде su, tsu или скриптов, которые внутри себя обращаются к root. Разберёмся, как проверить реальное состояние root-доступа, откуда берётся эта ошибка и какие варианты решения существуют — от безопасных до требующих разблокировки загрузчика.

Что означает эта ошибка на техническом уровне

В Android бинарный файл su (substitute user) — это стандартный механизм повышения привилегий. На обычном, нерутированном устройстве его просто не существует в системных путях: ни в /system/bin, ни в /system/xbin, ни в /sbin. Когда Termux или сторонний скрипт выполняет команду su, оболочка ищет исполняемый файл, не находит его и возвращает ошибку отсутствия superuser binary.

Важно понимать: Termux сам по себе не предоставляет root-доступ. Это эмулятор терминала, который работает в рамках прав обычного Android-приложения. Root появляется только после отдельной процедуры — например, установки Magisk с модификацией загрузочного образа.

Как проверить, есть ли root на устройстве

Прежде чем что-то исправлять, нужно убедиться в фактическом состоянии системы. Откройте Termux и выполните простую проверку:

which su

Если команда ничего не вернула — бинарника su в путях нет, и устройство не рутировано (либо root работает через механизм, недоступный из Termux). Если путь отобразился, например /system/bin/su, проверьте, выполняется ли переход в root-режим:

su -c id

Ожидаемый результат — строка с uid=0(root). Если вместо этого появляется ошибка permission denied или запрос зависает, root присутствует формально, но менеджер доступа (Magisk или аналог) не выдаёт разрешение.

  • 🔍 Проверьте наличие приложения Magisk (или другого root-менеджера) в списке установленных — его отсутствие почти всегда означает отсутствие root.
  • 📱 Откройте Magisk и посмотрите статус: там видно, установлен ли он корректно и какая версия активна.
  • 🧪 Используйте команду su -v в Termux — она покажет версию бинарника su, если он вообще существует.
  • 🔎 Проверьте вывод echo $PATH — убедитесь, что каталоги с su входят в переменную окружения.
📊 Какой у вас статус устройства после проверки?
Root есть, но su не работает
Root отсутствует совсем
Magisk установлен, но Termux не видит su
Пока не проверял

Причина 1: устройство просто не рутировано

Самая частая ситуация — пользователь установил Termux и пытается запустить скрипт, требующий root (например, инструменты для работы с сетью, chroot-окружения или модификации системы), на обычном устройстве. В этом случае ошибка абсолютно закономерна.

Здесь есть два пути. Первый — отказаться от команд, требующих root: многие задачи в Termux решаются без него, а часть скриптов имеет не-root режимы работы. Второй — получить root-доступ осознанно, понимая все последствия.

⚠️ Внимание: получение root через разблокировку загрузчика на большинстве устройств приводит к сбросу всех данных, может аннулировать гарантию и нарушить работу банковских приложений и системы SafetyNet/Play Integrity. Процедура различается в зависимости от модели — обязательно изучите инструкции именно для вашего аппарата.

Причина 2: root есть, но Termux не получает доступ к su

Если Magisk установлен, а ошибка всё равно появляется, возможная причина — не выдано разрешение. Magisk управляет доступом к su для каждого приложения отдельно. При первом вызове su из Termux должно появиться всплывающее окно с запросом — если вы нажали «Отклонить» или окно не отобразилось, Termux остался без прав.

Откройте Magisk, перейдите в раздел Superuser (значок щита) и найдите Termux в списке. Если приложение там есть со статусом запрета — переключите разрешение. Если Termux в списке отсутствует, выполните в терминале su ещё раз и дождитесь диалога.

☑️ Диагностика доступа Termux к root

Выполнено: 0 / 4

Ещё одна возможная причина — включённый режим Zygisk с DenyList, в который случайно добавлен Termux, либо настройка Magisk «скрывать» root от приложений. Проверьте список исключений и уберите Termux из него, если он туда попал.

Причина 3: устаревший метод root или конфликт окружения

На старых устройствах root мог быть получен через SuperSU или кастомное recovery, и бинарник su находится в каталоге, который Termux не видит в своём окружении. Termux использует собственный $PATH с префиксом /data/data/com.termux/files/usr, и системные пути могут отличаться от ожидаемых скриптом.

Для таких случаев существует пакет tsu — обёртка, которая корректно передаёт окружение Termux при переходе в root-режим:

pkg install tsu

tsu

Если tsu запускает root-оболочку без ошибок, значит, проблема была в окружении, а не в отсутствии root. Скрипты, жёстко прописывающие путь к su, при этом могут потребовать ручной правки.

Почему скрипты из интернета часто падают с этой ошибкой

Многие скрипты для Termux писались под конкретную конфигурацию автора — с конкретной версией Magisk, конкретным путём к su и конкретной версией Android. На другом устройстве пути и механизмы могут отличаться, поэтому скрипт не находит superuser binary даже при наличии root. Перед запуском незнакомых скриптов открывайте их текстовым редактором и смотрите, какие команды они вызывают.

Сравнение способов решения

Сценарий Действие Риски
Root отсутствует, root не нужен Использовать не-root альтернативы команд Отсутствуют
Root отсутствует, root необходим Разблокировка загрузчика и установка Magisk Сброс данных, гарантия, банковские приложения
Magisk есть, доступ не выдан Разрешить Termux в разделе Superuser Минимальные
Конфликт окружения Установка и использование tsu Минимальные
Termux в DenyList Magisk Убрать приложение из списка исключений Минимальные

Когда root не нужен: альтернативы

Значительная часть задач, ради которых пользователи ищут root в Termux, решается без него. Сетевая диагностика (ping, traceroute, nmap в базовом режиме), работа с файлами в собственном каталоге приложения, SSH-клиент и сервер, Python-скрипты — всё это работает в штатных правах.

Для доступа к общему хранилищу используйте команду termux-setup-storage — она запросит стандартное Android-разрешение на файлы, и никакой root не потребуется. А для запуска Linux-дистрибутивов есть proot-distro, который эмулирует chroot-окружение без привилегий суперпользователя.

⚠️ Внимание: не устанавливайте «root в один клик» из непроверенных APK-файлов. Подобные приложения часто содержат вредоносный код, а бинарник su, который они подкладывают, может перехватывать ваши данные. Единственный относительно безопасный путь — официальные сборки Magisk с разблокированным загрузчиком.

Часто задаваемые вопросы

Можно ли получить root прямо из Termux без разблокировки загрузчика?

Нет. Termux работает с правами обычного приложения и не может самостоятельно повысить привилегии — это ограничение архитектуры Android. Root получается только через модификацию загрузочного образа или эксплойты, причём последние небезопасны и быстро теряют актуальность.

Почему su есть, но команда зависает без ответа?

Вероятно, менеджер root-прав не показывает диалог разрешения. Проверьте настройки Magisk: отключён ли режим автоматического отклонения запросов, не работает ли приложение в фоне с ограничениями. Иногда помогает перезапуск устройства.

Чем tsu отличается от обычного su?

tsu — это обёртка для Termux, которая сохраняет переменные окружения терминала (пути, префикс) при переходе в root-оболочку. Обычный su запускает root-сессию со стандартным системным окружением, из-за чего часть команд Termux в ней недоступна.

Пропадёт ли root после обновления системы?

Часто да: OTA-обновления перезаписывают загрузочный раздел, и модификации Magisk теряются. После обновления root обычно приходится устанавливать заново по инструкции для вашей модели.

Ошибка появляется внутри proot-distro — это тоже про root?

Да, но с оговоркой: внутри proot вы уже «root» виртуального окружения, однако команды, требующие реальных системных привилегий (например, работа с iptables или /system), всё равно завершатся ошибкой, потому что настоящего root на устройстве нет.