Permissions 文件系统(和)权限的实现

Permissions 文件系统(和)权限的实现,permissions,filesystems,kernel,user-permissions,xattr,Permissions,Filesystems,Kernel,User Permissions,Xattr,我试图理解文件系统和内核的关系,以及它们是如何协同工作的,特别是在权限方面 (我知道,事实上,文件系统在内核空间中运行,但是在这种情况下,我认为它们是两个分离的实体。) 当Bob(UID=1001,GID=1001,groups=“humans,minor”)试图读取内核和 文件系统是否允许访问 文件系统是否有一个函数,将Bob的组、Bob的UID和内核发送的其他内容的整个列表作为参数(这将允许文件系统确定Bob是否可以读取目标文件) 此外,如果这是它的工作方式——内核如何知道文件系统需要扩展/

我试图理解文件系统和内核的关系,以及它们是如何协同工作的,特别是在权限方面

(我知道,事实上,文件系统在内核空间中运行,但是在这种情况下,我认为它们是两个分离的实体。)

当Bob(UID=1001,GID=1001,groups=“humans,minor”)试图读取内核和 文件系统是否允许访问

文件系统是否有一个函数,将Bob的组、Bob的UID和内核发送的其他内容的整个列表作为参数(这将允许文件系统确定Bob是否可以读取目标文件)

此外,如果这是它的工作方式——内核如何知道文件系统需要扩展/特殊属性的数据?例如,对于synology扩展属性(ext4/btrfs)

非常感谢您的帮助/阅读资源。

祝您愉快

在我看来——当内核收到用户的请求(例如,打开一个文件)时,它会分析用户的访问权限。如果它们是正确的——内核管理硬件以向用户提供请求的数据

在计算机系统的上下文中(包括内核和文件系统;还包括输入、存储和输出数据的硬件),文件系统本身不可能做出决策(就像内核一样);它只是一个信息结构,以操作规则定义的方式编写(内核必须具有访问权限才能正确交互;这些规则可能存储在内核中)。因此,内核决定提供访问(如果要满足请求,内核将操作数据)。文件系统是一组存储在某些硬件上的数据,也是一个软件部分(作为内核的指令:如何操作硬件的物理层,也许,如何决定在逻辑层上提供访问);但是,决定性的作用还是取决于内核(内核必须符合所有提供的规则)

此变体只是一个变体,在不同的操作系统实现中可能会有所不同。我不知道它是在哪一个平台上实现的(这是操作系统“Linux”还是操作系统“Windows”方法,或者可能不是)

例如,如果我们描述一个用户连接到的远程云存储——这个存储(其中的某些东西充当所描述的内核;可能是它的内核)决定是否授予访问权;本地内核充当用户,远程系统就像内核一样

另外,我在这里也看到了一个类似的(或相对的)问题,关于“堆栈溢出”:——也许,在这里您会发现一些额外的信息