为什么sudo在Linux上有效但在Android上无效?


22

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


我的问题的上下文与/programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726相关

(此外,程序是否有任何办法可以要求root在Android 上运行,就像您具有在Windows上以“以管理员身份运行”的特权升级一样?如果您认为此问题应在其自己的线程上,我可以创建一)


它应该在sudoers列表中sudo。它不是Android系统中的Ubuntu
user3539

Answers:


20

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

大多数Android系统面向的是不需要了解Android内部信息的最终用户(即,每个Android应用程序都在其自己的用户下运行),因此无需为最终用户提供交互方式即可将命令作为系统运行管理员。

通常,您可以su代替sudo以其他用户身份运行命令,但是您必须知道目标用户的凭据su(因为sudo您必须知道运行命令的用户的凭据)



8

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

至于第二个问题,sudo根据我的经验,一旦将其安装在有根电话上,需要它的应用程序就会简单地请求它,并且会弹出一个提示。


5

您触摸了一个问题的关键点:典型的Linux安装IS扎根:您从Live CD引导并覆盖硬盘驱动器的引导区,以加载自己的代码。

只是植根PC的难度比在手机之类的半嵌入式设备上的要求低,因此人们往往会忘记使用双引导安装第二个OS本质上是植根的(唯一在这方面与您抗衡的是BIOS与安全启动,但可以轻松重置)。

而且,Android设备上的OS并未附带安装的sudo命令(或类似命令)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.