2015-05-29 73 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對應於非系統用戶,即非系統應用程序。