13 votos

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

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

¿Hay alguna forma de ejecutar Termux como root y tener los servidores funcionando en puertos privilegiados?

Ejecutando Android 7.1 con root en un dispositivo desbloqueado.

18voto

Guillermo Gomez Puntos 423

El su predeterminado de Termux es simple. Cuando se ejecuta, te trae /system/bin/sh en lugar del shell de Termux (normalmente bash). Para resolver este problema, puedes instalar el envoltorio su personalizado para Termux mediante

apt install tsu

Y luego puedes ejecutar tsu para que tu bash y todo esté ahora bajo privilegio de root.

Información adicional:
Usa un editor (como vim) para ver /data/data/com.termux/files/usr/bin/su y encontrarás que en la línea 10, llama a exec su $@ directamente mientras que en tsu, realiza la detección de shell y en la línea 80, ejecuta

exec su --preserve-environment -c "LD\_LIBRARY\_PATH=$PREFIX/lib $ROOT\_SHELL"

para preservar el entorno de Termux.

6voto

Alex Barreira Puntos 21

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

También quería ejecutar sshd como root. Funciona de inmediato con termux-sudo, pero al principio no quería usar el archivo authorized_keys porque los permisos para él y todos sus directorios padres no estaban restringidos a root (y en mi dispositivo el directorio / no puede ser restringido a root 700, porque entonces el software del reproductor multimedia deja de funcionar por alguna razón).

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

0 votos

Esto ayudó, y debería ser la respuesta aceptada

0voto

Ben Baltz Puntos 52

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

0 votos

Entonces, ¿si escribo su, luego 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 los servidores con un usuario normal pero aún así pueden tener puertos privilegiados?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X