CentOS Apache で PHP の sudo が失敗する

会社のサーバをWindowsServerから CentOS7 + Samba に入れ替えました。

 

サーバー上のあるエクセルファイルを、予定表として共有しているのだが、

これを開きっぱなしにしてしまうユーザーがいるので、がまんできなくなったら、

WindowsServerの共有の管理で強制的に閉じていました。

 

Linuxに置き換えることになったので、ファイルへの接続を切断できるアプリを、

PHP で ローカルWebアプリとして実装した。

 

ところがサーバ置き換え後、PHPを呼び出してみると、

PHPは動作しているのだが、sudo が失敗して、ロックのかかっているファイル一覧が取得できていない。

visudo  → 設定済み

SELINUX → Permissive

firewalld → 設定済み

 

...なぜか動作しない。

 

同じ環境であるはずの自宅サーバでは問題なく動作する。

shell_exec でエラーが取得できるように、  2>&1 をコマンドに加えた瞬間に、

動作するようになったが、時間を置いたらまた動作しなくなった。

原因が全く分からない。 再インストール? すべてやり直すか?

 

一瞬よぎるが、ファイルサーバはすでに稼働中。

これをまた旧環境に戻すのは一苦労なので、やめる。

 

2>&1 をコマンドに加えたので、エラーが取得できた。

device not a stream

検索し続けると、ようやくありました。

 

Sophos Anti-Virus が原因で、apache の sudo が失敗するとのこと。

Sophosの オンアクセス検索 を オフにしてみると、

動作しました!!!

誤検知が多いので、ClamAV からSophosAVに変えたことが原因でした。

自宅サーバClamAVのままだった・・・

 

除外設定はまだうまくいっていないので、当面はオンアクセス検索オフで行きます。

オンアクセスの除外がうまくいったらまた、報告します。

できている方は、ご教授ください。(phpのファイルを除外してもだめでした)