我想在手机的标准端口上安装SSH,HTTP和SMB服务器。
有一种方法可以以root用户身份运行Termux,并让服务器在特权端口上运行?
在未锁定的设备上运行有根的Android 7.1。
我想在手机的标准端口上安装SSH,HTTP和SMB服务器。
有一种方法可以以root用户身份运行Termux,并让服务器在特权端口上运行?
在未锁定的设备上运行有根的Android 7.1。
Answers:
su
Termux 的默认设置很简单。运行时,它将/system/bin/sh
为您带来而不是Termux的shell(通常是bash
)。要解决此问题,您可以通过以下方式为Termux安装自定义su包装器:
apt安装tsu
然后,您可以运行,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环境。
我只是为自己解决了同样的问题。tsu没帮我。我找到了这个项目:https : //github.com/st42/termux-sudo
我也想以root身份运行sshd。它是开箱即用的termux-sudo,但一开始它并不想要使用authorized_keys文件,因为对它及其所有父目录的权限不限于root(在我的设备上,/目录不能受到限制)到根700,因为那样由于某种原因,mediaplayer软件将不再起作用)。
因此,我不得不将该选项添加StrictModes no
到sshd配置文件中:/data/data/com.termux/files/usr/etc/ssh/sshd_config
现在它可以工作了!:)
一旦运行su,它将带您离开termux子外壳。您可以尝试SELinux宽容,这就是我解决权限被拒绝的方法。