0

Linux ベースの Web サーバーのディレクトリにマウントされた Windows ネットワークからの Samba 共有があります。次のようにディレクトリをマウントしました。

mount -t cifs -o username=admin,password='passsword',domain=mydomain.local,file_mode=0644,dir_mode=0777,uid=client_user,gid=client_user '//192.168.0.x/d$' /home/client_user/mnt

マウントは機能し、OS 内のファイルとディレクトリを参照できます。ただし、ブラウザーから実行された PHP スクリプトを介してこれにアクセスできるようにしたいと考えています。ただし、共有でファイル操作を行うと、アクセス許可が拒否されたというエラーが発生します。少し実験して、uid および gid パラメータ値を apache に置き換えましたが、まだうまくいきません。

どんな提案でも大歓迎です

編集

さらなるテストで、次のコードを含むファイルを作成しました。

if(is_readable('/path/to/mnt')) {
  echo 'Readable';
}
else {
  echo 'Not';
}

これをサーバーのコマンドラインから実行すると、Readable が出力されます。サーバー上で root およびユーザーとしてこれを実行しましたが、ブラウザーからは機能しません。

4

1 に答える 1

1

そのため、試行錯誤の末、SELinux がフォルダーへの httpd アクセスを許可していないことがわかりました。

次のコマンドを実行すると、httpd が cif にアクセスできるようになります。

setsebool -P httpd_use_cifs on

しかし、さらに調査したところ、マウントされたフォルダーだけに httpd コンテキストを設定できることがわかりました。そのため、ドライブをアンマウントし、マウント コマンドを次のように修正しました。

context="system_u:object_r:httpd_sys_rw_content_t:s0",

完全なコマンド:

mount -t cifs -o context="system_u:object_r:httpd_sys_rw_content_t:s0",username=admin,password='passsword',domain=mydomain.local,file_mode=0644,dir_mode=0777,uid=client_user,gid=client_user '//192.168.0.x/d$' /home/client_user/mnt
于 2012-11-29T16:07:17.857 に答える