cgi写权限的限制问题


前段时间用python写了个cgi程序,今天换了台机器就不能用了,调试发现没有权限写文件了
提取其中的问题代码,做了个测试
/var/www/cgi-bin/c.py

  1. #!/usr/bin/env python
  2. import cgitb
  3. cgitb.enable()
  4. import cgi, os
  5. import sys
  6. # cgi header
  7. print "Content-type: text/plain"
  8. print
  9. print os.getcwd()
  10. fw=open('/tmp/1','w');
  11. fw.write("test");
  12. fw.close()


访问http://192.168.1.2/cgi-bin/c.py之后,在/tmp目录下出现了文件1,
然后复制一下,修改权限
cd /tmp
cp 1 2
chown apache.apache 2
chmod a+w 2
ll
结果如下:2甚至比1的权限还多,任何人都可以修改2
-rw-r--r--  1 apache apache     4 Oct 27 17:18 1
-rw-rw-rw-  1 apache apache     4 Oct 29 09:48 2

但使用cgi结果却不一样


/var/www/cgi-bin/t.py


  1. #!/usr/bin/env python
  2. import cgitb
  3. cgitb.enable()
  4. import cgi, os
  5. import sys
  6. # cgi header
  7. print "Content-type: text/plain"
  8. print
  9. print os.getcwd()
  10. print os.access('/tmp/1', os.R_OK);
  11. print os.access('/tmp/2', os.R_OK); 
  12. print os.access('/tmp/1', os.W_OK);
  13. print os.access('/tmp/2', os.W_OK);


访问http://192.168.1.2/cgi-bin/t.py,测试两个文件的权限,结果输出:
/var/www/cgi-bin
True
True
True
False


按道理2比1的权限还多,但是使用cgi却没有写权限,只有使用cgi创建的文件才有写权限!!!
开始我以为是apache的配置问题,看了下配置文件,没有发现问题,网上也没找到相关的文档,
后来请教高人,说是关掉selinux就好了

我看了一下/etc/selinux/config
SELINUX=enforcing
改成disabled后,重启httpd,无效!要重启机器?不干!
查了一下用这个命令可以关闭
setenforce 0
检查一下
getenforce
返回Permissive


再次测试,读写权限全有了。


SELINUX具体做什么用的,怎么配置,我暂时没有时间搞,先把这个解决办法记下。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值