为什么 clamdscan 无法扫描任何东西?

为什么 clamdscan 无法扫描任何东西?

不确定这里发生了什么。我已经安装了clamavclamav-freshclamclamav-daemon在运行以下程序的机器上运行自动扫描(使用 cron)Ubuntu 桌面 10.04 LTS x64

很遗憾,clamdscan 拒绝扫描任何内容。这是我每次尝试时收到的输出:

root@uhs:/raid/Share/Public/# clamdscan -v /raid/Share/Public/
/raid/Share/Public: lstat() failed: Permission denied. ERROR

----------- SCAN SUMMARY -----------
Infected files: 0
Total errors: 1
Time: 0.004 sec (0 m 0 s)
root@uhs:/raid/Share/Public/#

/raid/Share/Public具有 777 权限,并且 clamav-daemon 用户clamav已添加到和admin组中root。无论我尝试扫描哪些文件或目录,都会收到相同的错误。

我甚至运行dpkg-reconfigure clamav-base并创建了守护进程用户,root看看这是否有帮助(但无济于事)。当然,我service clamav-daemon restart在所有这些更改之间都运行过。

我知道这个cat file_name | clamdscan -选项,但我需要能够递归扫描整个目录,显然这是行不通的。

我做错了什么?我可以使用 clamdscan 吗?

感谢您的任何帮助。


更新

输出sudo -u clamav stat /raid/Share/Public/

root@uhs:/raid/Share/Public# sudo -u clamav stat /raid/Share/Public/
  File: `/raid/Share/Public/'
  Size: 6           Blocks: 0          IO Block: 4096   directory
Device: 900h/2304d  Inode: 54526208    Links: 2
Access: (0777/drwxrwxrwx)  Uid: ( 1000/awensley)   Gid: (  120/   admin)
Access: 2011-01-19 01:00:00.304365306 -0600
Modify: 2011-01-18 22:47:06.793592673 -0600
Change: 2011-01-19 00:42:52.023813550 -0600
root@uhs:/raid/Share/Public# 

更新 2

我在 5 台不同的 Ubuntu 10.04 机器上遇到了同样的问题;其中 3 台是服务器。所以要么是我漏掉了什么,要么这里确实存在问题。


更新 3

我已将其提交为Launchpad 上的错误报告

答案1

在其他地方,我发现 AppArmor 或 SELinux 可能会导致 clamdscan 出现问题。

如果您运行sudo aa-complain clamd后重新扫描成功,那么这可能是您的问题。(请务必使用 重新启用它sudo aa-enforce clamd。)

要暂时禁用 SELinux(我还没有在 Ubuntu 上运行过),您可以尝试 echo 0 > /selinux/enforce。如果您正在运行 SELinux,我们可以跟进。

更新:这是来自 launchpad 的一个非常有趣的帖子:https://bugs.launchpad.net/ubuntu/+source/clamav/+bug/450250。我会遵循 Jamie Strandboge 的评论,排除 AppArmor 配置文件作为罪魁祸首。


如果这些都不适用,那么首先想到的方法是将目录通过 tar 传送到标准输出,并将其输入到 clamdscan(这是您提到的单个文件的一个变体)。我认为这看起来应该像这样:

 tar -cvf --to-stdout /somedirectory | clamdscan -  

您应该能够从 Ubuntu Clamav 团队的 ppa 中获取最新的 clamav 打包版本:https://launchpad.net/~ubuntu-clamav/+archive/ppa

此外,从ClamAV 网站: “如果您要提交错误报告,请务必对照最新开发代码“(假设您还没有这样做)您必须从他们的 Git 存储库中手动提取该代码并进行编译。

有关 Ubuntu 软件包的错误报告,请参阅 http://askubuntu.com...如何报告错误

=======

需要注意的一点是,据我所知,它clamscanclamdscan应该在您的主目录中毫无问题地运行。

Ubuntu 默认开启 apparmor,这可能导致一些复杂情况(同时也增加了非常理想的安全性)。

(clamdscan 要求 clamav 守护进程运行 —— clamscan 更像是一个临时的面向用户的软件包,不需要。由于 clamdscan/clamd 的附加功能,增加了复杂性开销。)

然而,与此相反,这篇文章中提到的 apparmor 的错误clamdscan应该已经在当前软件包发布时得到纠正。


更新 尝试重现并解决

我认为我无法完全重现您的环境或控制用户错误(肯定是我的,也可能是您的),但是我已经在与您使用的同一版本的 clamav 下重现了我认为是相同的问题。

此外,我从 git 存储库下载了最新的代码,并进行了编译和安装,但问题仍然存在。

我没有 SELinux,但我有 AppArmor。我是否正确解释了这一点?我并不完全确定。不过,关闭 AppArmor 后,我仍然收到权限被拒绝的错误。

=======

相关内容