当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux入门

Fedora,SELinux,apache,vsftpd和ReiserFS

Fedora,SELinux,apache,vsftpd和ReiserFS--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
在 Fedora Core 下配置服务器时遇到的问题。apache 的问题是自己指定的 Directory 总是 403 forbidden 错误,而 vsftpd 指定的 anon_root 目录以后匿名访问总是说没有权限进入那个目录。原因在于 Fedora Core 开启了 SELinux,安全策略不允许应用程序去访问那些目录和文件,所以出现了这样的错误。

关于 SELinux 的介绍这里有几个:Fedora Core FAQ 上的介绍,有人翻译的介绍,ibm developworks的,教你自己搭建一个 SELinux 系统。

按我现在的理解,问题产生的原因是 httpd 进程运行在它自己的 domain 中(类似于 chroot,把一个进程被限制在一个目录下,不能跳出到那个目录的父目录),它只能访问属于这个 domain 的文件。而文件属于那个文件由文件系统上特别的 label 决定。

问题的解决的办法是针对特定的目录和文件使用 chcon 来给文件贴个标签(这样说应该还算合适吧,正式的说法应该是 security context)。先用 ls -Z 看能正常访问的位置的文件和目录的标签,比如 /var/www 是 system_u:object_r:httpd_sys_content_t,然后使用

chcon -R -h -t httpd_sys_content_t

来贴标签。-R 是递归,-h 不跟随符号链接。这样 apache 应该就可以访问这个文件和目录了。vsftpd 的解决办法也是类似的。

但是我在 ReiserFS 上做这个操作的时候总是出错,说不支持这样的操作,ext3 上没有问题。ReiserFS 上用不了 SELinux ,服务器内核配置中 ReiserFS 的 POSIX_ACL 和 FS_SECURITY 是配上的,但是还是出了问题。不知道是不是现在还不能用 SELinux。

(现在对 SELinux 还是一知半解,等以后多了解一点东西以后再回头来修改。)
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有