使用 LDAP/PHP 通过 Linux 访问 Windows Server 文件


Access Windows Server Files via Linux with LDAP/PHP

我们正在运行带有Windows Server 2008的Active Directory。
我们还有一个带有Apache2和LDAP的Linux Ubuntu Server 12.04。

是否可以通过PHP/Javascript访问Windows Server文件系统,并具有当前登录网站的用户的权限?

背景:我们在 Ubuntu 服务器上运行 Joomla 和 Mediawiki。用户撰写了一篇文章,并希望添加一些指向 Windows 服务器上的文件和文件夹 (!) 的链接。恕我直言,除了提示链接之外,最好的方法是选择带有 PHP/Javascript 目录列表的文件/文件夹。但用户应该只看到他有权访问的目录。
由于我需要文件/文件夹的完整路径,因此没有HTML"输入"字段的选项。

有什么想法吗?感谢您的帮助!

除非您可以使用 PHP 向 Active Directory 服务器进行身份验证(这可能意味着用户的密码是纯文本格式),否则您将需要使用 PHP 列出文件。

PHP 有一个scandir()函数。由于需要授予PHP对Active Directory服务器的完全读取访问权限,因此如果您使用PHP来确定用户可以看到哪些文件,那么您可以简单地显示他们需要的文件。

您可以使用此函数获取文件结构:

function listdir($folder) {
    if (!is_dir($folder)) {
        return array(); //empty if not a folder
    }
    $return = scandir($folder);
    $subfolders = array();
    array_shift($return); //first two values are always .. & .
    array_shift($return);
    foreach ($return as $key => $value) {
        if (is_dir($value)) {
            unset($return[$key]);
            $subfolders[$value] = listdir($value); //recursively analyse the subdirectory
        }
    }
    return array_merge(array_values($return), $subfolders);
}

请注意,我还没有测试过这个,所以如果有问题,请告诉我。

scandir() 函数参考