IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

解决新的SELinux安全级别产生问题

2007年07月02日
/

在Fedora Core 3 Linux发布版中,你运行PHP或者类似的其它脚本的文件或者目录操作的时候,可能会出现这样一个异常:"failed to open stream: Permission denied in ..."。这很容易让我们联想到权限问题,那么我们按照常规会把这个文件或者目录的权限设置为777,但是很遗憾,在这个版本中这样做或许并不能解决这个问题。
这是因为新的SELinux内核只允许apache用户仅仅在/tmp目录中进行这样的操作(或许有别的可能和原因),解决这个问题必须关闭SELinux的安全级别的相关特性,允许apache用户可以操作其它目录,请看下面的详细步骤和图示:
有如下PHP代码:

if (!file_exists("count")) //如果文件count不存在
{
$file=fopen("count","w+"); //创建count文件并写入
fwrite ($file,"000001"); //写入
fclose ($file); //关闭文件
}
运行之后,出现异常:
Warning: fopen(count): failed to open stream: Permission denied in /var/www/html/count.php on line 4
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/html/count.php on line 5
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/count.php on line 6
打开“应用程序”->“系统设置”->“安全级别”:



确定修改之后,记得一定要重新启动防火墙和Apache服务器。再次运行上面的代码,程序运行正常。


发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

详细剖析:企业采用Linux系统注意事项
详细剖析:企业采用Linux系统注意事项你是否已经厌烦了整日为Windows Sever打补丁,是否已经开始怀疑Windows Sever 服...
揭穿零日漏洞的七大误区
揭穿零日漏洞的七大误区又过了一个月,又有一个零日漏洞被报告,而恶意攻击者借助恶意软件,发动了钻这个...

本类热点