Answers:
在我自己进行了一些研究之后,我使用sesearch命令调查了它们之间的区别:
$ sesearch --allow -s httpd_t -b httpd_read_user_content
找到了5条语义av规则:
允许httpd_t user_home_dir_t:dir {ioctl读取getattr锁定搜索打开};
允许httpd_t user_home_t:文件{ioctl读取getattr锁打开};
允许httpd_t user_home_t:dir {ioctl读取getattr锁定搜索打开};
允许httpd_t home_root_t:dir {getattr search open};
允许httpd_t home_root_t:lnk_file {读getattr};
$ sesearch --allow -s httpd_t -b httpd_enable_homedirs
找到了15条语义av规则:
允许httpd_t user_home_dir_t:dir {ioctl读取getattr锁定搜索打开};
允许httpd_t user_home_dir_t:lnk_file {读取getattr};
允许httpd_t autofs_t:dir {ioctl读取getattr锁搜索打开};
允许httpd_t cifs_t:文件{ioctl读取getattr锁打开};
允许httpd_t cifs_t:dir {ioctl读取getattr锁搜索打开};
允许httpd_t cifs_t:lnk_file {read getattr};
允许httpd_t nfs_t:文件{ioctl读取getattr锁打开};
允许httpd_t nfs_t:dir {ioctl读取getattr锁搜索打开};
允许httpd_t nfs_t:lnk_file {读getattr};
允许httpd_t user_home_t:文件{ioctl读取getattr锁打开};
允许httpd_t user_home_t:dir {ioctl读取getattr锁定搜索打开};
允许httpd_t user_home_type:dir {getattr search open};
允许httpd_t user_home_type:lnk_file {读取getattr};
允许httpd_t home_root_t:dir {ioctl读取getattr锁搜索打开};
允许httpd_t home_root_t:lnk_file {读getattr};
的所有规则http_read_user_content都包含在中httpd_t -b httpd_enable_homedirs。即,后者的范围比前者的范围宽。
正如Michael正确地说的,如果我们只想将文档根目录放在用户的主目录中,则应该仅启用第一个。