Android常规用户登录在ssh会话中向其他用户发送su时会丢失组信息
我在做什么:Android常规用户登录在ssh会话中向其他用户发送su时会丢失组信息,android,ssh,su,Android,Ssh,Su,我在做什么: 我已经构建了GNU emacs,用于手机上的本机使用 我在手机上以守护程序模式运行emacs,因此我可以随时使用EmacClient连接到它,以继续处理常规文件、运行进程等 从手机终端登录时,我当前是用户10157,一切正常: $id uid=10157(10157)gid=10157(10157) 分组=10157(10157)、1015(1015)、1023(1023)、1028(1028)、3003(3003) 当我通过ssh从PC连接到手机时(我在手机上使用DigiSSH
- 我已经构建了GNU emacs,用于手机上的本机使用
- 我在手机上以守护程序模式运行emacs,因此我可以随时使用EmacClient连接到它,以继续处理常规文件、运行进程等
- 从手机终端登录时,我当前是用户10157,一切正常: $id uid=10157(10157)gid=10157(10157) 分组=10157(10157)、1015(1015)、1023(1023)、1028(1028)、3003(3003)
- 当我通过ssh从PC连接到手机时(我在手机上使用DigiSSHd),它会以普通用户身份登录10282,一切正常: $id uid=10282 gid=10282组=1015(1015)、1023(1023)、1028(1028)、3003(3003)
$su-10157
很好,我可以运行emacs等。但是,我无法访问web
$ ping -c1 google.com
You must have internet permissions to use ping. Aborting.
$ id
uid=10157(10157) gid=10157(10157) groups=10157(10157)
因此,我不再是3003组的成员,除了其他组之外,我还需要上网
为什么该组信息会被剥离,我如何补救这一点,以便在su作为ssh下的此用户时可以继续访问web?根据
su
的标准手册页(从linux框中)
使用-时,必须将其指定为最后一个su选项。其他表单(-l和--login)没有此限制
基于此,试试看
$ su 10157 -
我可能遗漏了一些东西,因为这看起来太明显了,但为什么不只是“sudo-u10157”你的emacs程序呢
您仍然可以访问网络,并且您的emacs可以正常工作。还是我错过了一些重要的事情?当我运行命令时:
busybox --list
我在名单上没有看到苏
su --help
在帮助文本中显示Superuser.apk。这意味着su由超级用户应用程序提供
我遵循了您描述的步骤,我可以作为另一个用户使用su,并且仍然拥有internet权限,如下所示
我安装了以下应用程序
- BusyBox v1.18.5-Stericson
- 超级用户v3.0.7
- 终端仿真器v1.0.45
- SSHDroid v1.9.6
权限不是可以通过
su-
继承的环境变量
此外,gid和它们与每个应用程序uid的关联在安装后无法更改
10157应该是DigiSSHd应用程序的uid,因此您可以在更改后尝试重新生成它,以要求正确的
你可以找到一些有用的和有用的东西
这同样适用于BusyBox(请参阅)
但是,您可以通过这些应用程序启用网络访问,从而打开一些安全漏洞 #只是说这是一个巧合:“27ca8cd合并”ping:删除组检查“由Nick Kralevich编写-14天前”我很确定问题出在你的超级用户应用程序上。检查我的答案。@mcandre。在我的设置中,我甚至没有使用
su-
,我使用的是susomeuser
。你需要使用-
来“提供一个与用户直接登录时所期望的环境类似的环境。”BusyBoxsu-l u0\u a41
将组放到我的手机上,与su u0\u a41-
一样,我需要保留家长的组权限,否则我将无法访问SD卡。不幸的是,BusyBoxsu
正在删除Android中的组权限。@mcandre我可以确认这一点。su
二进制文件可以在/system/bin/su
或/system/xbin/su
中找到,并且不是BusyBox的一部分。你从哪里获得你的su
-超级用户、超级用户或其他东西?@appsroxcom是的,我正在使用超级用户应用程序中的su
。您能否提供一个使用用户名而不是ID的示例?@appsroxcom请再次查看您的屏幕截图。团体失踪。这样地。当我su-
时,我会丢失这些组。@mcandre,没关系。但是,当你使用SD卡时,你能ping或读SD卡吗?我可以。@mcandre,BusyBox id命令在显示组信息时似乎有一些问题。看看这个。