![IIS7设置网络驱动器目录的用户权限](https://linux22.com/image/677148/IIS7%E8%AE%BE%E7%BD%AE%E7%BD%91%E7%BB%9C%E9%A9%B1%E5%8A%A8%E5%99%A8%E7%9B%AE%E5%BD%95%E7%9A%84%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90.png)
我在网络驱动器(驱动器 1)上安装了 IIS7 服务器(我在其中运行一些 PHP),当我尝试访问另一个网络驱动器(驱动器 2)时,需要使用 pdftotext.exe 访问 PDF 文件。在驱动器 1 上,我还有一个虚拟/链接目录,它指向驱动器 2 上的目标目录(我需要访问该目录)。
有 IUSR、IIS_IUSRS 和我的用户 testUser,一切正在运行。
当我尝试通过 PHP 访问目标目录中的文件时,一切正常,我可以读取它们。但是当我尝试使用 exec 和 pdftotext.exe 时,我得到的返回值是 1。
我检查了 PHP 和 exec 在哪个用户下运行,以及当我执行此脚本时
echo "user <br>";
echo get_current_user();
echo "<br> who am i in command line? <br>";
$out = array();
exec('cmd /c whoami 2>&1',$out,$exitcode);
echo "<br />EXEC: ( exitcode : $exitcode )";
echo "<hr /><pre>";
print_r($out);
echo "</pre>";
在驱动器 1(虚拟目录外)中,我得到的信息是这两个东西都在 testUser 下。但是当我在虚拟目录中尝试时,php 由 testUser 运行,但 exec 返回 1。
所以我的问题是我需要如何设置权限,以便我可以在远程目录上使用 exec?(testUser 对驱动器 1 拥有所有权限,甚至对驱动器 2 上的目标目录也拥有权限)
答案1
因此,问题似乎不在于权限(我已将两个目录的权限设置为 testUser,但仍然出现相同的错误)。但后来我将 pdftotext.exe 移至虚拟目录,现在它似乎可以正常工作了。但我很好奇为什么。