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'が呼び出されることを理解しました –