Я хотел бы запустить Termux от имени root: возможно?

10

Я хотел бы иметь SSH, HTTP и SMB сервер на стандартных портах на моем телефоне.

Есть ли способ запустить Termux от имени root и запустить ли серверы на привилегированных портах?

Запуск рутированного Android 7.1 на разблокированном устройстве.

Magnetic_dud
источник

Ответы:

14

По умолчанию suTermux прост. При запуске он приносит /system/bin/shвам вместо оболочки Termux (как правило bash). Чтобы решить эту проблему, вы можете установить пользовательскую оболочку su для Termux:

удачная установка цу

И тогда вы можете запустить tsuтак, чтобы ваши bashи все теперь были под привилегией root.

Дополнительная информация:
используйте редактор (например vim), чтобы увидеть, /data/data/com.termux/files/usr/bin/suи вы обнаружите, что в строке 10 он вызывает exec su $@напрямую, в то время как tsuон выполняет обнаружение оболочки, а в строке 80 он выполняет

exec su --preserve-environment -c "LD_LIBRARY_PATH = $ PREFIX / lib $ ROOT_SHELL"

чтобы сохранить окружающую среду Termux.

iBug
источник
4

Я просто решил ту же проблему для себя. Цу не сработал для меня. Я нашел этот проект: https://github.com/st42/termux-sudo

Также я хотел запустить sshd от имени пользователя root. Это стандартная версия с termux-sudo, но сначала он не хотел использовать файл author_keys, потому что разрешения на него и все его родительские каталоги не ограничены root (и на моем устройстве каталог / не может быть ограничен). на root 700, потому что тогда ПО медиаплеера по какой-то причине больше не работает).

Поэтому мне пришлось добавить опцию StrictModes noв конфигурационный файл sshd: /data/data/com.termux/files/usr/etc/ssh/sshd_configи теперь это работает! :)

kaefert
источник
это помогло, и должен был быть принят ответ
ArtDeineka
0

Как только вы запустите su, он выведет вас из подоболочки termux. Вы можете попробовать SELinux permissive, вот как я могу обойтись без разрешения.

Бен Бальц
источник
так как я набираю su, тогда superuser запрашивает у меня разрешение root, я даю его, а затем я должен запускать серверы как root? Или, как только я это сделаю, я могу запускать серверы с обычным пользователем, но они все еще могут получать привилегированные порты?
Magnetic_dud