文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Linux系统中程序进程对文件的访问权限

Linux系统中程序进程对文件的访问权限

时间:2010-12-12  来源:杨少宁

 

进行访问权限测试的过程如下【涉及文件所有者(st_uid和st_gid)和进程的有效ID(有效用户ID及有效组ID)】:

(1)若进程有效用户ID为0(超级用户),则有所有权限

(2)若进程的有效用户ID=文件所有者ID,表明该进程拥有该文件,此时有适当的访问权限(在访问时用O_RDONLY,O_WRONLY等标识,文件所有者的访问权限被设置),则允许访问。

(3)若进程的有效组ID 等于文件的组ID,同2.

(4)若其他用户适当的访问权限被设置,也允许访问。

但是这些除了超级用户外,都是通过设置访问权限位去改变进程对文件的访问权限,比如sudo gedit /usr/include/stdio.h,本身如果单独使用gedit /usr/include/stdio.h是只读,不能进行编辑,但加上sudo后,就改变了访问权限位,拥有了文件修改权限。

设置文件访问权限位相当于一个壳,通过给进程加壳而改变了进程的权限范围。

在Linux中,access函数可以进行去壳测试,查看进程本来面目的权限,原型为:int access ( const char *path, int mode);就是看path文件是否有mode权限。

 

举例:

进程A没有打开/etc/shadow的权限,通过设置文件访问权限位(可以执行前加sudo),能够正确执行open函数,但使用access测试时不通过。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载