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正确地说的,如果我们只想将文档根目录放在用户的主目录中,则应该仅启用第一个。