我做了以下安装 clamscan:
sudo aptitude install clamav
sudo aptitude install clamav-daemon
并验证:
sudo ps -eal | grep clam
1 S 116 4788 1 2 80 0 - 4004 pause ? 00:00:13 freshclam
1 S 116 5930 1 0 80 0 - 69984 poll_s ? 00:00:00 clamd
但是当我尝试通过运行扫描系统上的所有文件时
#sudo clamdscan /
我不断收到以下错误消息:
lstat() failed: Permission denied. ERROR
但是如果我跑
sudo clamscan /
它有效,但这个过程要长得多,不是一个好的选择。
根据我的理解,clamd 使用用户“clamav”并列在/etc/clamav/clamd.conf 文件中。我已将用户 clamav 添加到以下组:root、adm、sudo,但它仍然不起作用。
我也曾尝试禁用 Apparmor,因为我读到这可能是问题所在,但没有成功。
最佳答案
sudo clamdscan/path/to/some_file.txt
会将请求传递给 clamd 守护进程。该守护进程在不同的用户下运行,该用户可能无权访问 /path/to/some_file.txt
但是,调用该命令的用户很可能有权访问该文件。为了将您的权限传递给守护进程,请使用 --fdpass
标志:
--fdpass
Pass the file descriptor permissions to clamd. This is useful if clamd is running as a different user as it is faster than streaming the file to clamd. Only available if connected to clamd via local(unix) socket.
在您的情况下,sudo clamdscan --fdpass/
应该可以解决问题。
关于ubuntu - 在 Ubuntu 12.04 上配置 clamdscan 以扫描系统上的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25437940/