Я хотел бы иметь сервер 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, потому что разрешения на него и все его родительские каталоги не ограничены корнем (а на моем устройстве / каталог не может быть ограничен рутировать 700, потому что тогда программное обеспечение медиаплеера по какой-то причине больше не работает).
Поэтому мне пришлось добавить параметр StrictModes no
в файл конфигурации sshd: /data/data/com.termux/files/usr/etc/ssh/sshd_config
и теперь он работает! :)
Как только вы запустите su, он выведет вас из подоболочки termux. Вы можете попробовать разрешительный SELinux, вот как я обхожу проблему отказа в разрешении.
АртДейнека