【问题标题】:Strange Behavior with clamd scan functionclamd 扫描功能的奇怪行为
【发布时间】:2023-03-03 22:47:01
【问题描述】:

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

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

这是我用来调用测试写入和扫描的代码,这是来自clamd网站的所有标准示例:

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

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

这是写入文件的字符串:

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

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

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

【问题讨论】:

  • 您是否将文件夹的执行权限授予其他用户?
  • 我做到了。该权限适用于所有用户。我看到的一个奇怪行为是我似乎无法更改这些文件的“所有权”,但其他进程应该仍然能够修改/执行。
  • 很高兴看到输出:ls -lt / | grep 文件删除; ls -lt /文件删除/;你甚至可能会因为 AppArmour ubuntu.com/server/docs/security-apparmor 之类的东西而失败
  • drwxrwxrwx 2 clamav clamav 4096 Mar 24 17:03 filedrop 总计 8 -rw-rw-rw- 1 clamav clamav 68 Mar 24 16:44 test.doc -rw-rw-rw- 1 clamav clamav 692 3 月 24 日 16:29 autoscan.py
  • grep audit /var/log/kern.log 或者如果存在:grep DENIED /var/log/audit/audit.log

标签: linux ubuntu ubuntu-server clamav


【解决方案1】:

我相信这里问题的解决方案是 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

【讨论】:

  • woohoo,禁用起初不起作用,但重新启动后它起作用了!太感谢了!一百万年我都不会想到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-03
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
相关资源
最近更新 更多