用户ID与文件访问权限

来源:互联网 发布:多米音乐mac版下载 编辑:程序博客网 时间:2024/05/17 00:03

一.与进程相关联的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).若文件的其他用户适当的访问权限被设置,则允许访问,否则拒绝访问。

0 0
原创粉丝点击