由于selinux的原因,我想直接将mount iso 后linux系统的下的某个目录提供给FTP客户端,FTP登录后,message日志提示,我用setsebool 设置了下面两项
setsebool -P allow_ftpd_anon_write on
setsebool -P ftp_home_dir on
仍然不行。
附: 如果把我要提供的FTP目录做如下设置不知道可不可行,自己还没试过 chcon -t public_content_rw_t pub setsebool -P allow_ftpd_anon_write on setsebool -P ftp_home_dir on |
Nov 4 20:26:41 localhost kernel: type=1400 audit(1257337601.213:28): avc: denied { getattr } for pid=3787 comm="vsftpd" path="/pub" dev=loop0 ino=1856 scontext=root:system_r:ftpd_t:s0 tcontext=system_u:object_r:iso9660_t:s0 tclass=dir
于是参考 和境的一篇["让SELinux允许访问ftp服务器上挂载iso文件的目录"
原文 ],我的系统是rhel5u3。
1、生成vsftp.te
audit2allow -m vsftp -l -i /var/log/message > vsftp.te
直接用生成的文档vsftp.te不知可不可以,没去试过,我是改成下面和镜兄的
module vsftp 1.0;
require {
type iso9660_t;
type ftpd_t;
class dir { getattr read search lock };
class file { getattr read lock };
}
#============= ftpd_t ==============
allow ftpd_t iso9660_t:dir { getattr read search lock };
allow ftpd_t iso9660_t:file { getattr read lock };
2、检查vsftp.te,检查后出现三行生成的提示
[root@localhost home]# checkmodule -M -m -o vsftp.mod vsftp.te
checkmodule: loading policy configuration from vsftp.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 6) to vsftp.mod
3、生成模块
[root@localhost home]# semodule_package -o vsftp.pp -m vsftp.mod
4、导入模块
[root@localhost home]# semodule -i vsftp.pp
5、重启vsftpd,不重启应该也可以的我想,没去试
[root@localhost home]# /etc/init.d/vsftpd restart
阅读(1506) | 评论(0) | 转发(0) |