Я хотел бы иметь SSH, HTTP и SMB сервер на стандартных портах на моем телефоне.
Есть ли способ запустить Termux от имени root и запустить ли серверы на привилегированных портах?
Запуск рутированного Android 7.1 на разблокированном устройстве.
Я хотел бы иметь SSH, HTTP и SMB сервер на стандартных портах на моем телефоне.
Есть ли способ запустить Termux от имени root и запустить ли серверы на привилегированных портах?
Запуск рутированного Android 7.1 на разблокированном устройстве.
Ответы:
По умолчанию su
Termux прост. При запуске он приносит /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.
Я просто решил ту же проблему для себя. Цу не сработал для меня. Я нашел этот проект: 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
и теперь это работает! :)
Как только вы запустите su, он выведет вас из подоболочки termux. Вы можете попробовать SELinux permissive, вот как я могу обойтись без разрешения.