用户ID与文件访问权限

本文介绍了与进程相关的六种ID,包括实际用户ID、实际组ID等,并详细解释了这些ID如何影响文件访问权限。此外,还阐述了执行权限、读权限及写权限对文件操作的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.与进程相关联的ID
与进程相关的ID有6种,分别是实际用户ID,实际组ID,有效用户ID,有效组ID,设置用户ID与设置组ID。
实际用户ID,实际组ID标记我们实际上是谁,一般在用户登录是确定,比如Zhangsan登录了linux,则实际用户就是Zhangsan。
有效用户ID,有效组ID用于文件访问权限检查,在没有设置用户ID/设置组ID的情况下,有效用户ID等同于实际用户ID,有效用户ID/有效组ID在用于文件访问权限检查时,决定了该用户有没有该文件的访问权限。比如root新建了一个文件,文件所有者、所属组均是root,且没有设置用户ID/设置组ID,那么Zhangsan登录Linux后,此时实际用户是Zhangsan,有效用户ID也是Zhangsan,它不是文件的所有者,也不是文件的所属组,那么Zhangsan就不能访问该文件。
当执行一个程序文件时,进程的有效用户ID通常就是实际用户ID,有效组ID通常是实际用户ID。但是若该文件添加了设置用户ID或设置组ID后,可以使得在执行该文件时,进程的有效用户ID/有效组ID变成文件的所有者用户ID/文件的所属组ID。例如,passwd是root权限,按理说只有root才能执行、修改passwd。但是普通用户也可以修改自己的密码,其原因就在于可执行程序passwd有设置用户ID,普通用户在执行passwd时,可以取得passwd所有者即root的权限。可以 ls -l /usr/bin/passwd 查看passwd权限:
-rwsr-xr-x 1 root root 47032 1月 27 2016 /usr/bin/passwd
r,w,x分别代表读、写、执行。s代表的就是设置用户ID或设置组ID,在passwd中,这里是设置用户ID

二.文件访问权限
1.目录:
在对一个目录有执行权限后,才能进入该目录
只有在对一个有写权限后,才能删除该目录下的文件,或在该目录下添加文件,更改文件
在对目录有读权限后,才能查看该目录下的文件,即可以使用ls命令
2.文件:
1).当我们打开某文件时,首先要对该文件所在的每一个目录有执行权限,即首先需要有权限进入该文件所在的目录
2).在对文件有读权限时,我们才可以读一个文件,例如用open函数以只读或读写等方式打开文件
3).在对文件有写权限时,才可以写入文件,添加内容
4).在对文件有执行权限时,才可以执行这个可执行文件

在进程每次打开、创建、或删除一个文件时,内核就会执行文件访问权限测试,具体如下:
1).若进程的有效用户ID是0,即是root,则可访问
2).若进程的有效用户ID等于文件的所有者ID,则文件所有者的适当的访问权限位被设置后,允许访问该文件。
3).若进程的有效组ID等于文件的组ID,则若文件所属组的适当的访问权限被设置后,允许访问该文件
4).若文件的其他用户适当的访问权限被设置,则允许访问,否则拒绝访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值