为什么 sudo 在 Linux 上可以工作,但在 Android 上却不行?

为什么 sudo 在 Linux 上可以工作,但在 Android 上却不行?

我还没有机会阅读足够的内容安卓、 Linux 或 UNIX 自己来回答这个问题。sudo可以在 Linux 机器上运行,但不能在 Android 上运行,除非您对移动设备(例如 Samsung GT-N8013)进行 root 操作。为什么移动设备需要 root,而不是典型的 Linux 安装?


我的问题的背景与 https://stackoverflow.com/questions/14019698/adb-shell-sudo-on-windows-7/14019726#14019726

(另外,有没有办法让程序要求像root在 Android 上一样运行,就像在 Windows 上升级“以管理员身份运行”的权限一样?如果你认为这个问题应该在它自己的线程上,我可以创建一)

答案1

sudo是带有 suid 位的普通应用程序。这意味着要使用它sudo,必须将其安装在系统上。并非所有 Linux 系统都sudo默认安装,例如 Debian ar Alpine Linux。

大多数Android系统都是针对不需要了解Android内部结构的最终用户(即每个Android应用程序在其自己的用户下运行),因此不需要为最终用户提供交互式方式来运行命令系统管理员。

一般来说,您可以使用su而不sudo是以其他用户身份运行命令,但您必须知道目标用户的凭据su(同时sudo需要运行命令的用户的凭据)。

答案2

sudo不具有普遍性。仅仅因为它存在于您使用的特定 Linux 发行版上,并不意味着它可以在也使用 Linux 内核的所有操作系统上使用。

答案3

手机必须 root 才能让root用户安装sudo(或任何其他应用程序)。否则,它将被安装为“标准”用户并且没有根访问权限。

至于第二个问题,sudo根据我的经验,一旦安装在root手机上,需要它的应用程序只需请求它,您就会收到弹出提示。

答案4

Android 的等效项sudo(用于应用程序检测目的)是轻松说

相关内容