alexei99 发表于 2012-11-21 23:50

php遍历目录的小程序无法遍历/root

$handle=opendir("/root");
                while($filename=readdir($handle)){
                        echo $filename;
                        echo "<hr/>";
                }
        closedir($handle);
很简单的一个小程序,遍历/tmp是没有问题的,但是遍历/root时就会报错,估计是权限的问题,我要怎么提升权限,让这个程序可以读取/root下的文件??这个PHP文件的属组,属主都是root

satrun7 发表于 2012-11-22 12:03

运行的环境说明一下,你/root是什么权限设置,php是什么版本,php运行环境是什么?不然让别人怎么才能说明白。修改了一下你的代码<?php
$handle=@opendir("/root");
while($filename=@readdir($handle)){
   echo $filename;
   echo "\n";
}
closedir($handle);
?>

alexei99 发表于 2012-11-22 21:56

本帖最后由 alexei99 于 2012-11-22 22:00 编辑

setfacl -m u:apache:rwx /root,但是还是没有权限访问?有明白一点的人吗?大家不要让我chmod 777 /root 这个没有意义。我是想找一个在程序里提升权限的方式,要是在服务器上修改就没有什么意义了

hbeimf 发表于 2012-11-23 10:47

:em17::em17::em17::em17::em17:

alexei99 发表于 2012-11-25 19:27

为什么没有人回复呢?后来发现我是源码包安装的,所以用户不是apache,现在设置ACL以后可以遍历了,但是有在程序里设置权限的方式吗?访问一些权限比较特殊的目录?

maochanglu 发表于 2012-11-26 10:17

chmod -r 777 /root

linux_c_py_php 发表于 2012-11-26 22:51

你只能改一下目录的权限了,apache是不会用root提供服务的,worker进程一定会setuid降权的,如果你强制配置它的工作用户是root,它不会启动成功

alexei99 发表于 2012-11-28 00:05

谢谢,楼上的。我试着强制用户是root,就启动不了了。

holine 发表于 2012-12-04 09:21

回复 3# alexei99


    你要遍历 /root 目录,要求运行php程序的用户有 /root 目录的执行权限,你想不通过服务器来设定而自己给自己提权,恐怕是不能实现的。

holine 发表于 2012-12-04 09:25

回复 7# linux_c_py_php


    如果想让Apache以root账户来运行,必须在编译时添加相应的编译选项,默认是禁止root账户启动的。
页: [1]
查看完整版本: php遍历目录的小程序无法遍历/root