2015-05-29 302 views
1

Linux中的UID是什么? Wiki和其他在线资源说它是用户ID。但究竟是用户ID? “user id”这个名字让我觉得它是使用操作系统的用户。喜欢如果我只有一个用户,我的用户ID应该是1.对于根,我知道它是0.Linux中的UID是什么?

但我看到用户ID是给每个进程(应用程序?)。那么,每个进程都有不同的用户ID吗?为什么需要我们有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个用户吗?如果是,那么究竟谁是用户?

回答

1

UID是Linux用户标识。

用户ID不必从0或1开始计数。没有什么说用户ID从0,1,2,...等增加,所以没有什么奇怪的事实,即UID是10078.在Android上,每个应用程序都有自己的Linux用户。这是出于安全管理的原因而完成的;每个用户的权限=每种应用都可以通过这种方式在操作系统级别进行管理。每次安装新应用程序时,都会为该应用程序创建一个新的Linux用户。

对此进行了更详细的解释:Android System Permissions

Linux的用户是操作系统级的用户,并没有任何直接关系到谁正在使用Android设备的人。

+0

太棒了! “在Android上,每个应用都有自己的Linux用户。” - 这回答我的查询像宝石。所以我可以假设有超过10000个应用程序安装完成?只是为了清除我的理解,在ubuntu中,uid是指使用操作系统的实际用户? –

+0

不,也许它从10000开始计算。也许数字10078意味着您已安装79个应用程序。在Ubuntu中,每个实际用户的确有一个Linux用户,并且也有许多Linux用户用于其他用途。 – Jesper

+0

谢谢jesper。这里的博客http://www.linfo.org/uid.html说,uid的可以在/ etc/passwd中看到。虽然在ubuntu下,我无法在android中找到此路径,但它包含诸如“pulse:x:110:119:PulseAudio守护程序,,,:/ var/run/pulse:/ bin/false”之类的数据,其中110是UID。但是我期待着我的名字(用户),而不是一个应用程序“脉冲”在这里。对不起,打扰你更多。你能否对此发表评论? –

0

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