Me gustaría ejecutar Termux como root: ¿posible?

10

Me gustaría tener un servidor SSH, HTTP y SMB en los puertos estándar de mi teléfono.

¿Hay alguna forma de ejecutar Termux como root y hacer que los servidores se ejecuten en puertos privilegiados?

Ejecutar Android 7.1 rooteado en un dispositivo desbloqueado.

Magnetic_dud
fuente

Respuestas:

14

El valor predeterminado sude Termux es simple. Cuando se ejecuta, trae /system/bin/shpara ti en lugar del shell de Termux (normalmente bash). Para resolver este problema, puede instalar el contenedor personalizado su para Termux

apt install tsu

Y luego puede ejecutar tsupara que su bashy todo esté ahora bajo el privilegio de root.

Más información:
use un editor (me gusta vim) para ver /data/data/com.termux/files/usr/bin/suy encontrará que en la línea 10, llama exec su $@directamente mientras está dentro tsu, realiza la detección de shell y en la línea 80, se ejecuta

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

para preservar el ambiente de Termux.

iBug
fuente
4

Acabo de resolver el mismo problema por mí mismo. tsu no funcionó para mí. Encontré este proyecto: https://github.com/st42/termux-sudo

También quería ejecutar sshd como root. Está listo para usar con termux-sudo, pero al principio no quería usar el archivo autorizado_claves, porque los permisos y todos sus directorios principales no estaban restringidos a la raíz (y en mi dispositivo el directorio / no puede restringirse rootear 700, porque entonces el software mediaplayer ya no funciona por alguna razón).

Así que tuve que agregar la opción StrictModes noal archivo de configuración sshd: ¡ /data/data/com.termux/files/usr/etc/ssh/sshd_configy ahora funciona! :)

kaefert
fuente
esto ayudó, y debería ser la respuesta aceptada
ArtDeineka
0

Una vez que ejecutas su, te saca de la subshell termux. Puedes probar SELinux permisivo, así es como evito el permiso denegado.

Ben Baltz
fuente
así que como escribo su, luego el superusuario me pide permiso de root, se lo doy y luego tengo que ejecutar los servidores como root. ¿O una vez que hice eso, puedo ejecutar servidores con un usuario normal pero aún pueden obtener puertos privilegiados?
Magnetic_dud