首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android系统用户和linux root用户有什么区别?

问android系统用户和linux root用户有什么区别?
EN

Stack Overflow用户
提问于 2013-06-05 14:36:12
回答 2查看 14.6K关注 0票数 26

当我把我的手机连接到电脑上,然后我使用"adb shell“命令与我的手机通信,输入ps命令输出当前在我手机上运行的进程信息,我发现两个特殊的用户,一个是root用户,另一个是system用户,据我所知,root用户是基于linux的android,所以root用户是最大的权限用户,但是我混淆了system用户,也许我可以认为它是linux系统中的一个普通用户,但它在android系统中是特殊的,它有很多与android相关的权限,所以有人能告诉我root用户和system用户之间真正的区别吗?为什么android需要添加系统用户?谢谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-05 17:24:26

就Linux而言,system用户只是一个普通用户(UID1000)。然而,Android服务给了它特殊的权限,你可以访问几乎任何东西。大多数服务在某处都有这样的代码:

代码语言:javascript
复制
private static final void enforceSystemOrRoot(String message) {
    final int uid = Binder.getCallingUid();
    if (uid != Process.SYSTEM_UID && uid != 0) {
        throw new SecurityException(message);
    }
}

这将拒绝任何非根用户或system用户的访问。shell用户(UID2000)(您在执行adb shell时得到的)是另一个拥有大量权力的用户(许多组的成员)。请参阅

system

代码语言:javascript
复制
 $ su 1000
 $ id
 uid=1000(system) gid=1000(system)
 groups=1003(graphics),1004(input),1007(log),1009(mount),
 1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),
 3002(net_bt),3003(inet),3006(net_bw_stats)

shell

代码语言:javascript
复制
$ adb shell
shell@android:/ $ id
uid=2000(shell) gid=2000(shell)   
groups=1003(graphics),1004(input),1007(log),1009(mount),
1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),
3002(net_bt),3003(inet),3006(net_bw_stats)

Android为每个应用程序使用一个单独的用户,系统服务也有其专用用户(media、radio、wifi等)。很少有程序以root用户身份运行(大部分是本机守护进程)。

票数 28
EN

Stack Overflow用户

发布于 2013-09-10 06:24:01

系统用户不能访问其他用户的文件。

如果是这样的话: ls -l /data/data/com.google.android.gm/shared_prefs/

你将得到‘许可被拒绝’

如果您是root用户,则可以执行任何操作。你可以访问所有的文件系统,擦除所有数据。

你也可以重启手机,等等。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16933108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档