13 votes

Je voudrais exécuter Termux en tant que root : est-ce possible ?

Je voudrais avoir un serveur SSH, HTTP et SMB sur des ports standard sur mon téléphone.

Y a-t-il un moyen de faire tourner Termux en tant que root et d'avoir les serveurs qui fonctionnent sur des ports privilégiés ?

Je fais tourner Android 7.1 rooté sur un appareil déverrouillé.

18voto

Guillermo Gomez Points 423

Le su par défaut de Termux est simple. Lorsqu'il est exécuté, il vous apporte /system/bin/sh à la place de l'interpréteur de commandes de Termux (généralement bash). Pour résoudre ce problème, vous pouvez installer l'enveloppe su personnalisée pour Termux en

apt install tsu

Ensuite, vous pouvez exécuter tsu pour que votre bash et tout soit maintenant sous le privilège root.

Informations supplémentaires:
Utilisez un éditeur (comme vim) pour voir /data/data/com.termux/files/usr/bin/su et vous verrez qu'à la ligne 10, il appelle directement exec su $@ tandis que dans tsu, il effectue la détection de l'interpréteur de commandes et à la ligne 80, il exécute

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

pour préserver l'environnement de Termux.

6voto

kaefert Points 151

J'ai juste résolu le même problème pour moi-même. tsu n'a pas fonctionné pour moi. J'ai trouvé ce projet : https://github.com/st42/termux-sudo

Aussi, je voulais exécuter sshd en tant que root. Cela vient prêt à l'emploi avec termux-sudo mais il ne voulait pas utiliser le fichier authorized_keys au début, car les autorisations sur celui-ci et tous ses répertoires parent n'étaient pas restreintes à root (et sur mon appareil, le répertoire / ne peut pas être restreint à root 700, sinon le logiciel de lecteur multimédia cesse de fonctionner pour une raison quelconque).

Donc j'ai dû ajouter l'option StrictModes no au fichier de configuration sshd : /data/data/com.termux/files/usr/etc/ssh/sshd_config et maintenant ça fonctionne ! :)

0 votes

Cela a été utile et devrait être la réponse acceptée.

0voto

Ben Baltz Points 152

Une fois que vous exécutez 'su', cela vous fait sortir du sous-shell termux. Vous pouvez essayer SELinux permissif, c'est ainsi que je contourne le problème de permission refusée.

0 votes

Donc, si je tape su, alors superuser me demande la permission root, je la donne, et ensuite je dois exécuter les serveurs en tant que root ? Ou une fois que j'ai fait cela, je peux exécuter les serveurs avec un utilisateur normal mais ils peuvent toujours accéder aux ports privilégiés ?

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X