【发布时间】:2011-08-06 09:59:41
【问题描述】:
您好,我正在 PHP 上制作某种文件资源管理器,例如,如果我有这样的根文件夹:
/ (root)
|
|
|---home
|
|
|---user
|
|
|---folder
|
|---folder1
|
|---file1
现在我该怎么做user 只能浏览 /home/user/ 内的文件,而不能像 cd ../../ 那样去外面?非常感谢 :)
这是我用于cdcommand 的代码:
<?php
function cd($actualdir, $dir) {
//echo $actualdir.$dir."<br>";
if($dir == "..") {
$expdir = explode("/", $actualdir);
$newdir = array_pop($expdir);
$fulldir = "";
foreach($expdir as $value) {
$fulldir .= $value."/";
}
$fulldir = substr($fulldir, 0, -1);
if($fulldir == "./rootfs/home") {
return "permission denied";
} else {
return $fulldir;
}
} else {
if(file_exists($actualdir."/".$dir)) {
//echo $dir;
return $actualdir."/".$dir;
} else {
return "no";
}
}
}
?>
顺便说一句,根目录只是 Web 服务器根目录上的一个目录,它应该充当 shell 的系统根目录
编辑:基本上,如果用户是user,则只允许他进入/home/user 及其子目录。如果用户是testonly 到/home/test 和子目录。就是这样
【问题讨论】:
标签: php file-permissions