我有一个非常简单的页面尝试使用shell_exec来启动一个smbclient。
该行在交互式shell中运行良好,但在浏览器中失败。
Interactive Shell
[root@vle html]# php -a
Interactive shell
php > $exec = exec("smbclient //*IP*/*Share* -U *Username*%*Password*");
Domain=[...] OS=[Windows Server 2012 Standard 9200] Server=[Windows Server 2012 Standard 6.2]
这是按预期工作的。但是,当在由Apache支持的PHP文件中执行此操作时,我得到:
测试在浏览器中执行的PHP文件
<?php
$exec = exec("smbclient //*IP*/*Share* -U *Username*%*Password");
print_r($exec);
// returns Connection to *IP* failed (Error NT_STATUS_ACCESS_DENIED)
?>
当尝试使用libsmbclient for php时,我收到以下错误:
警告:无法打开SMB目录smb:// IP / 共享:未知错误 (110)
有没有人有任何想法可能导致它在交互式shell中工作但不在浏览器中工作?
服务器是CentOS 6
更新
我已将问题缩小到由SELinux引起(我暂时禁用它)。
有谁知道如何通过selinux允许smbclient?