我在做什么:
从手机终端登录时,我现在是用户10157,一切正常:
$ id
uid = 10157(10157)gid = 10157(10157) 基团= 10157(10157),1015(1015),1023(1023),1028(1028),3003(3003)
当我通过ssh通过电脑连接手机(我在手机上使用DigiSSHd)时,它会以普通用户10282身份登录,一切正常:
$ id
uid = 10282 gid = 10282组= 1015(1015),1023(1023),1028(1028),3003(3003)
Emacs运行正常等。但是,这样我就无法通过emacsclient连接到在用户10157下运行的emacs进程。这是可取的,因为我不想启动两个emacs进程,因为我想继续工作我在用户10157下的emacs中打开的文件。
因此:
$ su - 10157
很好,我可以运行emacs等。但是,我无法访问网站。
$ ping -c1 google.com
You must have internet permissions to use ping. Aborting.
$ id
uid=10157(10157) gid=10157(10157) groups=10157(10157)
因此,除了其他团体之外,我不再是3003组,这是互联网接入所必需的。
为什么这个组信息被剥离了,我该如何解决这个问题,所以我可以在ssh下作为这个用户继续访问网页?
答案 0 :(得分:4)
当我运行命令时:
busybox --list
我没有在列表中看到su。
su --help
在帮助文本中显示Superuser.apk。这意味着超级用户应用程序提供了 su 。
我按照您描述的步骤操作,我可以作为其他用户使用,并且仍然具有互联网权限,如下所示。
我安装了以下应用程序。
建议: 我认为问题出在您的设备上。你可以试试这个。 https://play.google.com/store/apps/details?id=com.noshufou.android.su
如果我只使用adb shell而不运行SSHDroid仍然可以作为另一个具有互联网权限的用户使用。
注意:BusyBox id命令不会始终显示组信息。
答案 1 :(得分:2)
根据su
的标准手册页(来自linux盒子)
当使用 - 时,必须将其指定为最后一个su选项。其他形式(-l和--login)没有此限制。
基于此,尝试
$ su 10157 -
答案 2 :(得分:0)
我可能在这里遗漏了一些东西,因为这似乎太明显但为什么不只是'sudo -u 10157'你的emacs程序?
您仍然可以访问网络并且您的emacs将正常运行。还是我错过了重要的事情?
答案 3 :(得分:0)
权限不是可以通过su -
继承的环境变量。
此外,gid是hard coded,安装后无法更改它们与每个APP uid的关联。
10157 应该是 DigiSSHd 应用的uid,因此您可以在更改AndroidManifest.xml后尝试重建它以要求正确的{{3} }。
您可以找到有用的内容permission和here。
同样适用于 BusyBox (请参阅here)。
但是,您可以通过此类应用程序启用NETWORK访问来打开一些安全漏洞。