linux 中的 UID 是什么?
what is UID in linux?
linux 中的 UID 是什么?
Wiki 和其他在线资源说它是用户 ID。但用户 ID 到底是什么?
"user id" 这个名字让我感觉是使用 OS 的用户。像如果我只有一个用户,我的用户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
....
所以这里为进程google保留,UID为10078。那么,是否有超过10000个用户?如果是,那么用户到底是谁?
UID 是 Linux 用户 ID。
用户 ID 不必从 0 或 1 开始计数。没有任何内容表明用户 ID 从 0、1、2 等开始上升,所以这并不奇怪UID 为 10078.
在 Android,每个应用都有自己的 Linux 用户。这样做是出于安全管理原因;每个用户的权限 = 每个应用程序都可以通过这种方式在 OS 级别进行管理。每次安装新应用时,都会为该应用创建一个新 Linux 用户。
这在以下内容中有更详细的解释:Android System Permissions
Linux用户是操作系统级别的用户,与使用Android设备的人没有任何直接关系。
我注意到在Android中(至少5和6)任何大于10000的uid都对应于非系统用户,即非系统应用。
linux 中的 UID 是什么? Wiki 和其他在线资源说它是用户 ID。但用户 ID 到底是什么? "user id" 这个名字让我感觉是使用 OS 的用户。像如果我只有一个用户,我的用户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
....
所以这里为进程google保留,UID为10078。那么,是否有超过10000个用户?如果是,那么用户到底是谁?
UID 是 Linux 用户 ID。
用户 ID 不必从 0 或 1 开始计数。没有任何内容表明用户 ID 从 0、1、2 等开始上升,所以这并不奇怪UID 为 10078.
在 Android,每个应用都有自己的 Linux 用户。这样做是出于安全管理原因;每个用户的权限 = 每个应用程序都可以通过这种方式在 OS 级别进行管理。每次安装新应用时,都会为该应用创建一个新 Linux 用户。
这在以下内容中有更详细的解释:Android System Permissions
Linux用户是操作系统级别的用户,与使用Android设备的人没有任何直接关系。
我注意到在Android中(至少5和6)任何大于10000的uid都对应于非系统用户,即非系统应用。