微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

蛤蜊扫描功能的奇怪行为

如何解决蛤蜊扫描功能的奇怪行为

我在 ubuntu 服务器 20.04 上运行了一个简单的 python3 脚本,它试图调用 clamd(clamav-daemon 进程)库来扫描文件。扫描 ping() 和 version() 函数都可以正常工作。但是,当我实际进行测试写入和扫描时,出现以下错误

{'/filedrop/test.doc': ('ERROR',"Can't open file or directory")}

这是我用来调用test write和scan的代码,这都是clamd网站的标准样例:

open('/filedrop/test.doc','wb').write(clamd.EICAR)
print(cd.scan('/filedrop/test.doc'))

代码运行后,我在测试文件中得到以下字符串,这表明python3脚本能够成功写入文件,但我在使用时不断收到文件无法打开的错误蛤蜊扫描功能

这是写入文件的字符串:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

我还可以从文件夹上的命令行运行 clamscan,它也成功扫描了文件

当服务使用 clamav:clamav 时,我以 root 用户身份运行。 我确实向“其他用户”授予了对该文件夹和文件的读/写权限,并且还表明该文件可以由 python 脚本写入。

解决方法

我相信这里问题的解决方案是 AppArmour 正在阻止该特定目录的 clamd。我会查看 Clamd 的 AppArmour 配置文件。它应该被称为 /etc/apparmor.d/clamav 或类似的东西。您可以调整该配置文件或禁用它(根据 Ubuntu):

sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/profile.name

此处提供了更完整的说明: https://help.ubuntu.com/community/AppArmor

您也可以禁用 AppArmour,以进行测试(我不喜欢建议任何人永久删除安全功能),使用:

sudo systemctl stop apparmor
sudo systemctl disable apparmor

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。