什么是Linux中的UID?

时间:2015-05-29 06:34:49

标签: android linux unix process uid

Linux中的UID是什么? Wiki和其他在线消息来源称这是用户ID。但究竟是什么用户ID? 名称"用户ID"让我感觉是用户正在使用操作系统。喜欢如果我只有一个用户,我的用户ID应为1.对于root,我知道它是0。

但是我看到用户ID被赋予每个进程(应用程序?)。那么,每个进程都有不同的uid吗?当我们已经将pid区分开来时,为什么需要它。

Ex :
root:/ # ps 8533
USER     PID   PPID  VSIZE  RSS     WCHAN    PC        NAME
u0_a78    8533  363   1526628 52668 ffffffff b6f80d04 S com.google.android.keep

root:/ # cat /proc/8533/status
Name:   le.android.keep
State:  S (sleeping)
Tgid:   8533
Pid:    8533
PPid:   363
TracerPid:  0
Uid:    10078   10078   10078   10078
....

所以这里的谷歌保持过程,UID是10078.那么,有超过10000个用户吗?如果是,那么究竟谁是用户?

2 个答案:

答案 0 :(得分:1)

UID是Linux用户ID。

用户ID不必从0或1开始计数。没有任何内容表明用户ID从0,1,2,...等上升,所以UID是没有什么奇怪的事实10078

在Android上,每个应用都有自己的Linux用户。这是出于安全管理的原因;每个用户的权限=每个应用程序都可以通过这种方式在操作系统级别进行管理。每次安装新应用程序时,都会为该应用程序创建一个新的Linux用户。

Android System Permissions

中有更详细的解释

Linux用户是操作系统级用户,与使用Android设备的用户没有任何直接关系。

答案 1 :(得分:0)

我注意到在Android(至少5和6)中,任何大于10000的uid对应于非系统用户,即非系统应用程序。