Chinaunix首页 | 论坛 | 博客
  • 博客访问: 812492
  • 博文数量: 770
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4950
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-09 17:49
文章分类

全部博文(770)

文章存档

2011年(1)

2008年(769)

我的朋友

分类:

2008-10-10 11:08:43

经过几天的努力( 首先是努力看资料 ),终于将 SELinux 在 web server 中的应用搞得七七八八了,在其间得到老大和 davi 的关注,不能独闷心得,特写出来供大家参考:

一.  SELinux 的配置( 略... ),可以参考:



二. 修改 html 目录权限:
1. 检查网站内容目录
[php]
#ls -Z /Dmnr/www/html
[/php]
状态为:
[php]
-rwxr-xr-x  someuser    somegroup                                   index.php
...
[/php]
2. 显然没有 SELinux 权限,所以做如下修改:
[php]
chcon -R -t httpd_user_content_t /Dmnr/www/html
[/php]
再看就是这样:
[php]
-rwxr-xr-x  someuser    somegroup  user_ubject_r:httpd_sys_content_t index.php
...
[/php]
重启 httpd 一般的 php 就可以工作了。

三. 数据库
1. Mysql
但是当读写数据库时还会被 SELinux 拒绝,到 /var/lib/mysql 或 /var/lib/pgsql 下看没有问题,权限是这样的:
[php]
-rw-rw----  mysql    mysql    rootbject_r:mysqld_db_t        ibdata1
-rw-rw----  mysql    mysql    rootbject_r:mysqld_db_t        ib_logfile0
-rw-rw----  mysql    mysql    rootbject_r:mysqld_db_t        ib_logfile1
drwx------  mysql    mysql    root:object_r:mysqld_db_t        mysql
srwxrwxrwx  mysql    mysql    root:object_r:mysqld_var_run_t   mysql.sock
drwx------  mysql    mysql    root:object_r:mysqld_db_t        test
[/php]
但是到放了数据的 test 库底下看就知道自建的表还是没有 SELinux 权限,没关系,修改就是了:
[php]
chcon -R -t mysqld_db_t /var/lib/mysql
[/php]
注意!此处的 SELinux 属性是 mysqld_db_t
2. pgsql
我还开了 PostgreSQL 的库,用此方法修改属性没有成功,报错:
[php]
chcon: can't apply partial context to unlabeled file pgsql/data/base/23456
chcon: can't apply partial context to unlabeled file pgsql/data/base/12345
[/php]
到 /var/lib/pgsql/data/base 下看,原来是自建库 12345 和 23456 不能应用属性。找资料找的乱七八糟,半天也没有头绪,算了!
[php]
#su - postgres
$cd /var/lib/pgsql/data/base
$mv 12345 12345_b
$cp -r 12345_b 12345
[/php]
再看:
[php]
drwx------  postgres postgres user_u:object_r:postgresql_db_t  12345
...
[/php]
说明已经加上属性了,再刷新一下读数据库的网页,OK !

最后还要说几句,修改 SELinux 属性挺烦的,但是对安全有好处,所以值得下一点工夫。

参考:

      
--------------------next---------------------

阅读(406) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~