簡體   English   中英

CentOS 7無法連接clamd.sock文件(權限被拒絕錯誤)

[英]CentOS 7 unable to connect clamd.sock file (Permission denied error)

我正在嘗試使用clamAV掃描PHP服務器上的上傳文件。 我已經在服務器(Centos 7)上安裝了ClamAV。 當前,我正在使用PHP 7,因此我正在使用Clamd套接字連接來掃描上傳的文件。 我已經啟用了PHP套接字,與Apache所有者一起在/var/run/clamd.scan/文件夾中存在clamd.sock文件。

我的套接字連接代碼-

        $socket = socket_create(AF_UNIX, SOCK_STREAM, 0);

        if(socket_connect($socket, '/var/run/clamd.scan/clamd.sock')) {
            return $socket;
        }

當我嘗試在瀏覽器上運行以上代碼時,出現socket_connect(): unable to connect [13]: Permission denied錯誤socket_connect(): unable to connect [13]: Permission denied ,但是如果我通過命令行以用戶為根用戶運行PHP代碼,則可以正常工作。

我知道Centos的SELinux策略存在一些問題,就像我禁用SELinux策略一樣,瀏覽器也一切正常。 我已經選中了httpd_can_network_connect --> onantivirus_can_scan_system --> on都處於打開狀態。

問題在於訪問apache用戶的/var/run/文件夾中的任何內容,SELinux有某種(某些策略)正在阻止apache連接到蛤socket套接字文件。 有任何想法嗎?

調試后,知道這是SELinux策略問題。 您需要在SELinux中啟用daemons_enable_cluster_mode策略。

啟用daemons_enable_cluster_mode:

setsebool -P daemons_enable_cluster_mode 1

在我的案例中,這將允許通過另一個服務(例如Apache)執行ClamAV掃描。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM