0

smbclient を開始するために shell_exec を試みている非常に単純なページがあります。

この行は対話型シェルでは正常に機能しますが、ブラウザーでは失敗します。

インタラクティブ シェル

[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)
?>

PHP に libsmbclient を使用しようとすると、次のエラーが発生します。

警告: SMB ディレクトリを開けませんでした smb:// IP /共有: 不明なエラー (110)

対話型シェルでは機能するが、ブラウザでは機能しない原因について考えている人はいますか?

サーバーはCentOS6

アップデート

問題をSELinuxが原因であることに絞り込みました(一時的に無効にしました)。

selinux を介して smbclient を許可する方法を知っている人はいますか?

4

0 に答える 0