“Unix world”文件系统(如ext4)存储每个文件,inode中有3种类型的可用用户所有者,组,其他的权限/访问权限列表。 我想知道“身份验证”何时发生; 我的意思是:
假设我们有一个文件
file.txt rwx rw- --- st_uid=54 st_gid=99
owner group others
用户tim
uid=100
,gid=99
在终端中运行cat file.txt
,请求到达文件系统,该文件系统将tim
与文件的权限进行比较;
tim
不是所有者:他的uid=100
与文件uid=54
不一样;
但他与文件(99
)具有相同的gid,因此他得到的回复是rw-
cat
实际上是一个读取,因此用户收到了内容
执行此方案的系统功能是什么?我可以通过实现自定义文件系统来修改它吗?
更新 我的文件系统的唯一目的是更多地使用权限并且是一个概念证明(这是一个研究项目)所以任何关于我应该从哪里开始的想法将受到高度赞赏。在此先感谢!!
答案 0 :(得分:3)
对于FUSE文件系统,解决方案是直截了当的: FUSE实现为每个对文件系统发出的用户请求提供上下文;
工作流程如下所示:
ls
)