在EXT2 file.c中,打开文件操作(.open)指向dquot_file_open,它进一步指向fs / open.c中存在的generic_file_open.
generic_file_open看起来像下面的代码
int generic_file_open(struct inode * inode, struct file * filp)
{
if (!(filp->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS)
return -EOVERFLOW;
return 0;
}
即将打开文件时,在哪里检查ACL权限?
我什么时候用Google搜索并使用LXR浏览了代码,发现了以下路径.
do_sys_open-> do_filp_open-> path_openat-> do_last-> may_open-> inode_permission-> do_inode_permission-> generic_permission-> acl_permission_check-> check_acl-> posix_acl_permission
但是我不明白EXT2的.open如何链接到do_sys_open.
我们非常感谢您在打开文件时让我知道检查ACL权限的任何帮助.
解决方法:
您从错误的角度看待它:诸如do_sys_open之类的名称是系统调用的入口点,并且最终将在验证权限后通过VFS层来查找ext2打开例程.