clamav
, clamav-freshclam
и clamav-daemon
для запуска автоматического сканирования (с использованием cron) на моей машине под управлением Ubuntu Desktop 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#
У меня точно такой же проблема на 5 отдельных машинах Ubuntu 10.04; 3 из них серверы. Так что либо я что-то упустил, либо здесь есть реальная проблема.
Я отправил это как сообщение об ошибке на Launchpad
В других местах я видел, что AppArmor или SELinux могут вызывать проблемы для clamdscan.
Если вы запустите sudo aa-complain clamd
и повторное сканирование сработает, возможно, это ваша проблема. (Обязательно включите его с помощью sudo aa-enforce clamd
.)
Чтобы временно отключить SELinux, который я не запускал в Ubuntu, вы можете попробовать echo 0 > /selinux/enforce
. Мы можем проверить это, если вы используете SELinux.
обновление: вот очень интересная ветка из панели запуска: https://bugs.launchpad.net/ubuntu/+source/clamav/+bug/450250 . Я следовал за комментариями Джейми Стрэндбога, чтобы исключить профили AppArmor как виновника.
Если это не применимо, то на ум приходит хакерская передача каталога к стандартному выводу через tar и подача его в clamdscan (что является вариантом того, что вы упомянули для одного файла). Я думаю, это выглядело бы примерно так:
tar -cvf --to-stdout /somedirectory | clamdscan -
Вы сможете получить самую последнюю упакованную версию clamav от команды Ubuntu Clamav от их ppa: https: // launchpad .net / ~ ubuntu-clamav / + archive / ppa
Также с сайта ClamAV : «Если вы собираетесь отправлять отчет об ошибке, всегда проверяйте его на соответствие код последней разработки . " (Предполагая, что вы этого еще не сделали) Вам придется извлечь этот код вручную из их репозитория Git и скомпилировать его.
Отчеты об ошибках в пакетах Ubuntu см. В http: //askubuntu.com...how-do-i-report-a-bug .
=======
Следует отметить, что, насколько я могу судить, это clamscan
, а не clamdscan
, которое должно беспроблемно работать в вашем домашнем каталоге.
Ubuntu представляет некоторые возможные сложности (с очень желательным повышением безопасности), если включить apparmor по умолчанию.
(clamdscan требует, чтобы демон clamav был запущен - clamscan, больше специализированного пользовательского пакета, этого не делает. С дополнительными функциями clamdscan / clamd добавляются дополнительные сложности.) [ 1124]
Тем не менее, несмотря на это, ошибка для clamdscan
и apparmor, упомянутая в сообщении об ошибке из этого поста, должна была быть исправлена ко времени текущего пакета.
Обновлено пытается воспроизвести и разрешить
Я не думаю, что смогу полностью воспроизвести вашу среду или контролировать ошибки пользователя ( определенно мое и, возможно, ваше), однако я воспроизвел то же, что, по моему мнению, является той же проблемой в той же версии, что и у вас.
Кроме того, я скачал самый последний код из репозитория git, скомпилировал и установил его, но проблема все еще есть.
У меня нет SELinux, но у меня есть AppArmor. Я правильно учел это? Я не на 100%. Я все еще получаю ошибки отказано в разрешении после выключения AppArmor все же.
=======