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

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

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

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

Ответы (3)

По умолчанию 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, потому что разрешения на него и все его родительские каталоги не ограничены корнем (а на моем устройстве / каталог не может быть ограничен рутировать 700, потому что тогда программное обеспечение медиаплеера по какой-то причине больше не работает).

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

это помогло и должно быть принятым ответом

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

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