如何使用IIS7设置用户权限以访问网络驱动器目录

时间:2016-02-17 06:55:59

标签: php permissions iis-7 file-permissions user-permissions

首先提一下,这个问题是我上一个问题here的扩展。 我的目标仍然是一样的。我在网络驱动器(驱动器1)上有IIS7服务器(我运行一些PHP),当我尝试访问另一个网络驱动器(驱动器2)时,需要使用 pdftotext.exe 访问PDF文件。

在驱动器1上,当存储了我需要访问的所有文件时,我还在驱动器2上的目录(tarDir)上有一个虚拟/链接目录(virDir)。

当我自己运行pdftotext.exe时,一切都像魅力一样,在带有pdfcontent的驱动器1输出文件上创建,每个人都快乐直到死。但是当我试图执行PHP脚本时,存储在驱动程序1的virDir中,它通过exec命令运行 pdftotext.exe ,它返回1并且没有创建文件。

在我的上一个问题中,我发现它可能是权限问题,但我有点困惑如何设置它们。 IIS7有一些内部用户,比如IUSR和IIS_IUSRS,当我在php中调用get_current_user();时,它设置为testUser。

那么我需要将哪些权限设置为dirs(virDir和tarDir),以便服务器可以访问它们?

我试过testUser在tarDir(驱动器2)上设置了Modify,Read a Execute,List文件夹内容,Read,Write权限,IUSR,testUser和II_IUSRS都有Read a Execute,List文件夹内容,Read,Write权限tarDir(驱动器1)。

当我试图访问"正常"文件,如txt,pptx等我可以毫无问题地阅读它们(即时通讯使用php库),但是当我尝试使用pdftotext.exe它失败了。

有人能看到我做错了吗?

修改 所以我做了一些其他的测试,当我运行这个命令时(我是运行命令行的人很好)

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运行的,但是当我在驱动器1 virDir中运行它时,它返回1.因此可能会出现关于在shell中执行命令的权限...我将对任何提示进行说明。 ..

2 个答案:

答案 0 :(得分:0)

所以似乎问题不在权限中(我为testUser设置两个目录的permisions,并且仍然得到相同的错误),但是当我将pdftotext.exe移动到虚拟目录时,现在看起来它正常工作。但我好奇为什么......

答案 1 :(得分:0)

将权限用作&#34; Everyone&#34;,以便可以毫无问题地访问该目录。

步骤:

  1. 右键单击目录文件夹并选择属性
  2. 在“安全”选项卡下,单击“编辑”按钮
  3. 现在点击添加按钮
  4. 指定&#34;每个人&#34;在字段中:输入要选择的对象名称,然后单击检查名称以识别它。
  5. 完全控制并申请
  6. 最近我遇到了同样的问题,上面的步骤解决了它