内核版本(4.15)
DAC: Discretionary access control 自主访问控制 .
DAC是传统的Linux的访问控制方式,DAC可以对文件、文件夹、共享资源等进行访问控制。 在DAC这种模型中,文件客体的所有者(或者管理员)负责管理访问控制。DAC使用了ACL(Access Control List,访问控制列表)来给非管理者用户提供不同的权限,而root用户对文件系统有完全自由的控制权。
do_sys_open
do_filp_open
get_empty_filp
const struct cred *cred = current_cred();
f->f_cred = get_cred(cred); // 当前进程的 cred赋值给打开的文件句柄
path_openat
link_path_walk
may_lookup
inode_permission
__inode_permission
do_inode_permission
generic_permission