栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【Linux】Linux 中的用户、用户组和UID

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Linux】Linux 中的用户、用户组和UID

一、Linux 中的用户和用户组

参考:https://www.runoob.com/linux/linux-user-manage.html

1.1 Linux系统用户账号的管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

1.2 Linux系统用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。

1.3 主组和附加组

参考:https://www.jianshu.com/p/5c393e414736

1.3.1 主组(Primary Group)

也叫初始组,是用户登录系统时所处的组,规则如下:

  • 创建新用户时,若未明确指定该用户所属的主组,会默认创建一个与用户名相同的组,作为该用户的主组

  • 用户创建文件时,文件的所属权限组就是当前用户的主组

  • 用户有且只能所属一个主组

  • 用户的主组不能被删除

  • 用户不能直接被移出主组,但可以更换主组

  • 用户被删除时它的主组若没有其他所属用户,则会自动删除该主组

1.3.2 附加组(Supplementary Group)

是用户登录系统后 可切换到的 组,规则如下:

  • 用户可以所属零个或多个附加组

  • 用户的附加组和主组可相同

  • 附加组可以直接被删除而无需关心是否所属于用户

  • 附加组可以新增和移除任意个所属用户

  • 用户被删除时所属附加组不会受影响

二、Linux 中的UID

参见:https://blog.csdn.net/qq_39441603/article/details/125013758

2.1 每个进程的三个UID值

内核为每个进程维护的三个UID值。这三个UID分别是RUID(Real UID,实际用户ID)、EUID(Effective UID,有效用户ID)、SUID(Saved Set-user-ID,保存的设置用户ID)。

  • RUID:我们当前以哪个用户登录,我们运行程序产生进程的RUID就是这个用户的UID。
  • EUID:指当前进程实际以哪个UID来运行。一般情况下EUID等于RUID;但如果进程对应的可执行文件具有SUID权限(也就是rws的s),那么进程的EUID是可执行文件的所有者的UID。
  • SUID:EUID的一个副本,与SUID权限有关。
2.2 二进制文件的SUID权限

以passwd这个可执行文件为例。
password文件的权限为:-rwsr-xr-x
passwd的所有者是root,但是其他用户对于passwd也有执行权限,并且passwd自身具有SUID权限(rws的s)。
那么,当非root用户执行passwd这个可执行文件的时候,产生的进程的EUID,就是root用户的UID。换言之,这种情况下,产生的进程,实际以root用户的ID来运行二进制文件。

需要说明的是,SUID权限具有时效性:仅在执行该文件的过程中有效。

2.3 setuid函数

函数原型:int setuid(uid_t uid);

在Linux中, setuid(uid)函数的执行步骤为:
(1)如果由Root权限进程(EUID为0的进程)调用,则将进程的RUID,EUID和SUID都设置为uid,返回0
(2)如果由普通权限进程调用,且uid等于RUID或uid等于SUID,则将进程的EUID设置为uid,返回0
(3)如果由普通权限进程调用,且uid不等于RUID或SUID,则设置errno为EPERM,并返回-1(表示执行失败)

上文中,执行password的进程,EUID是password的所有者的UID,也就是root用户的UID,也就是0。所以,属于情况(1)。

su文件同样是-rwsr-xr-x权限。所以,安卓中,普通进程通过Runtime.getRuntime().exec(“su”),发起一个shell进程,去执行su的时候,同样属于情况(1)。

2.4 getuid和giteuid函数

getuid返回当前进程的RUID
geteuid返回当前用户的EUID

三、安卓中 app执行su获取root用户权限的过程

参见:https://blog.csdn.net/qq_39441603/article/details/124996277

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941855.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号