EXT2 file.c
에서 열린 파일 작업 (.open)
은 dquot_file_open
을 가리키며, 이는 generic_file_open
을 가리키며 fs/open.c
에 있습니다.파일이 EXT2에서 열릴 때 ACL 사용 권한은 어디에서 확인됩니까?
generic_file_open
은 그냥 파일을 열 되려고 할 때 ACL 권한이 선택되고있는 아래 코드
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;
}
있다처럼 보인다?
내가 인터넷 검색을하고 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 사용 권한을 확인하는 방법에 대한 도움을 주시면 큰 도움이 될 것입니다.
감사합니다. @geeosaur .. 나는 오픈 시스템 호출이 호출 되 자마자 ext2'open' 루틴이 호출된다는 인상하에있었습니다. 귀하의 게시물은 큰 도움이되었다. 처음에는'do_sys_open'이 호출되고'do_sys_open'에서 루틴 체인을 호출 한 후 ext2'open'이 호출됨을 이해했습니다. –