"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

freshclam: problem with internal logger

wergor 18.04.2014 - 15:50 5576 23
Posts

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
Code:
[root@localhost ~]# su clamav -s /bin/sh -c 'freshclam -v'                                                                      
Current working dir is /var/lib/clamav                                                                                          
Max retries == 3                                                                                                                
ERROR: Can't create temporary directory /var/lib/clamav/clamav-51f723db34244446741fc7b08437657a.tmp                             
Hint: The database directory must be writable for UID 490 or GID 484
Bearbeitet von wergor am 20.04.2014, 21:25

Luka

Administrator
...
Avatar
Registered: Nov 2006
Location: Mödling
Posts: 206
Zitat
Hint: The database directory must be writable for UID 490 or GID 484

Schau mal welche UID da gemeint ist. Sollte der User namens clamav sein.

Code:
getent passwd 490

Welche Rechte hat das Verzeichnis /var/lib/clamav?

Code:
ls -ld /var/lib/clamav

Verwendest du clamd? Läuft er als User clamav?

Code:
ps axl | grep clamd

Stoppe clamd, repariere die Rechte. Vergewissere dich, dass clamd und freshclam immer als User clamav ausgeführt werden.

EDIT: Vermutlich ist es das Einfachste, wenn du clamav neu installierst.

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
Code:
[root@localhost ~]# getent passwd 490                                                      
clamav:x:490:484:Clam Anti Virus Checker:/var/clamav:/sbin/nologin                         
[root@localhost ~]# ls -ld /var/log/clamav                                                 
drwxr-xr-x. 2 clamav clamav 4096 Apr 20 03:53 /var/log/clamav                              
[root@localhost ~]# ps axl | grep clamd                                                 
0     0 25186 24625  20   0 103252   808 pipe_w S+   pts/1      0:00 grep clamd            
[root@localhost ~]# service clamd start                                                 
Starting Clam AntiVirus Daemon: ERROR: Can't open /var/log/clamav/clamd.log in append mode 
(check permissions!).                                                                      
ERROR: Can't initialize the internal logger                                                
                                                           [FAILED]
Die rechte scheinen zu paasen, ich werde mal clamav neu installieren.

Edit: problem ist nicht gelöst :(
Edit2: reboot hilft auch nix. Zumindest clamscan geht ohne probleme.
Bearbeitet von wergor am 21.04.2014, 14:11

Luka

Administrator
...
Avatar
Registered: Nov 2006
Location: Mödling
Posts: 206
Könnte auch an SELinux liegen:

Code:
grep clam /etc/selinux/targeted/contexts/files/file_contexts

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
selinux hab ich gerade deaktiviert
Code:
[root@localhost var]# echo 0 >/selinux/enforce
hat aber nichts geändert.
Code:
[root@localhost var]# grep clam /etc/selinux/targeted/contexts/files/file_contexts
/var/clamav(/.*)?       system_u:object_r:antivirus_db_t:s0
/var/lib/clamd.*        system_u:object_r:antivirus_db_t:s0
/var/log/clamd.*        system_u:object_r:antivirus_log_t:s0
/var/run/clamd.*        system_u:object_r:antivirus_var_run_t:s0
/var/log/clamav.*       system_u:object_r:antivirus_log_t:s0
/var/run/clamav.*       system_u:object_r:antivirus_var_run_t:s0
/var/lib/clamav(/.*)?   system_u:object_r:antivirus_db_t:s0
/var/run/amavis(d)?/clamd\.pid  --      system_u:object_r:antivirus_var_run_t:s0
/var/log/freshclam.*    --      system_u:object_r:antivirus_log_t:s0
/etc/rc\.d/init\.d/clamd.*      --      system_u:object_r:antivirus_initrc_exec_t:s0
/var/log/clamav/freshclam.*     --      system_u:object_r:antivirus_log_t:s0
/usr/sbin/clamd --      system_u:object_r:antivirus_exec_t:s0
/usr/bin/clamscan       --      system_u:object_r:antivirus_exec_t:s0
/usr/bin/clamdscan      --      system_u:object_r:antivirus_exec_t:s0
/usr/bin/freshclam      --      system_u:object_r:antivirus_exec_t:s0
/usr/sbin/clamav-milter --      system_u:object_r:antivirus_exec_t:s0
/usr/share/clamav/clamd-gen     --      system_u:object_r:bin_t:s0
/usr/share/clamav/freshclam-sleep       --      system_u:object_r:bin_t:s0

ich habe nochein bisschen herumprobiert, mit permissions 777 für /var/log/clamav und 666 für alle files darin kann ich zumindest als root freshclam anstarten und es funktioniert (laut configfile wechselt freshclam nach dem start automatisch zum user clamav und dessen permissions) aber mit einem standard user gibts folgende fehlermeldung:
Code:
[server@localhost ~]$ freshclam
ERROR: Can't create temporary directory /var/clamav/clamav-16cc5280db852264106e90ca90749dcc.tmp
Hint: The database directory must be writable for UID 500 or GID 500
UID 500 und GID 500 = user und group des standard-users

Code:
[root@localhost var]# ls -ld /var/log/clamav/
drwxrwxrwx. 2 clamav clamav 4096 Apr 21 17:01 /var/log/clamav/
[root@localhost var]# ls -l /var/log/clamav/*
-rw-rw-rw-. 1 clamav clamav       557 Apr 21 16:56 /var/log/clamav/clamd.log
-rw-rw-rw-. 1 clamav clamav     60445 Mar 16 04:04 /var/log/clamav/clamd.log-20140316
-rw-rw-rw-. 1 clamav clamav     60858 Mar 23 04:35 /var/log/clamav/clamd.log-20140323
-rw-rw-rw-. 1 clamav clamav     59914 Mar 30 03:23 /var/log/clamav/clamd.log-20140330
-rw-rw-rw-. 1 clamav clamav     59144 Apr  5 19:44 /var/log/clamav/clamd.log-20140406
-rw-rw-rw-. 1 clamav clamav      8367 Apr 21 17:19 /var/log/clamav/freshclam.log
-rw-rw-rw-. 1 clamav clamav      4685 Mar 30 03:23 /var/log/clamav/freshclam.log-20140330
-rw-rw-rw-. 1 clamav clamav      4152 Apr  6 03:55 /var/log/clamav/freshclam.log-20140406
-rw-rw-rw-. 1 clamav clamav      2672 Apr 16 12:10 /var/log/clamav/freshclam.log-20140417
-rw-rw-rw-. 1 clamav clamav      1238 Apr 18 18:59 /var/log/clamav/freshclam.log-20140420
-rw-rw-rw-. 1 clamav clamav         8 Apr 21 14:49 /var/log/clamav/freshclamtest
-rw-rw-rw-. 1 clamav clamav       336 Apr 21 17:01 /var/log/clamav/scan.log
-rw-rw-rw-. 1 clamav clamav 312143704 Apr 21 16:01 /var/log/clamav/scan.log.old
[root@localhost var]# freshclam
ClamAV update process started at Mon Apr 21 17:19:27 2014

edit: nach erneuter neuinstallation geht zumindest der clamd wieder.
Bearbeitet von wergor am 21.04.2014, 17:22

Luka

Administrator
...
Avatar
Registered: Nov 2006
Location: Mödling
Posts: 206
Zitat
ERROR: Can't create temporary directory /var/clamav/clamav-16cc5280db852264106e90ca90749dcc.tmp

Deine freshclam.conf und clamd.conf passen nicht zusammen. Freshclam sucht im Verzeichnis /var/clamav, vorher war es noch /var/lib/clamav.

Da wurden ziemlich sicher zwei inkompatible Pakete aus verschiedene Quellen vermischt.

Finde heraus welche Pfade dein installiertes Paket verwendet (/var/clamav oder /var/{lib,run,log}/clamav). Passe die Konfigurationsdateien (DatabaseDirectory usw.) und die Dateirechte entsprechend an.

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
Zitat von luka
Deine freshclam.conf und clamd.conf passen nicht zusammen. Freshclam sucht im Verzeichnis /var/clamav, vorher war es noch /var/lib/clamav.

Da wurden ziemlich sicher zwei inkompatible Pakete aus verschiedene Quellen vermischt.

Finde heraus welche Pfade dein installiertes Paket verwendet (/var/clamav oder /var/{lib,run,log}/clamav). Passe die Konfigurationsdateien (DatabaseDirectory usw.) und die Dateirechte entsprechend an.
aah ich hab immer log gelesen statt lib :bash:
in /var/clamav liegen die virendefinitionen etc:
Code:
[root@localhost log]# ls /var/clamav
bytecode.cvd  daily.cvd  main.cvd  mirrors.dat
[root@localhost var]# ls -ld /var/clamav
drwxr-xr-x. 2 clamav clamav 4096 Apr 21 18:33 /var/clamav
database directory ist jetzt für clamd und freshclam auf /var/clamav gesetzt, permissions auf 755 und owner clamav. (/var/lib/clamav existiert, ist aber leer)
wenn ich die permission für /var/clamav auf 777 setze, kann ich auch mit dem standarduser freshclam ausführen. da passt ja irgendwas nicht, wieso braucht der ausführende user (schreib)zugriff wenn freshclam ja sowieso die rechte dropped und zum user clamav wechselt :confused:
/var/log/clamav braucht nach wie vor permission 666, wenn ich freshclam als standarduser aufrufen will, als root gehts auch mit 644 etc :(
Bearbeitet von wergor am 21.04.2014, 18:46

Luka

Administrator
...
Avatar
Registered: Nov 2006
Location: Mödling
Posts: 206
Zitat von wergor
wenn ich die permission für /var/clamav auf 777 setze, kann ich auch mit dem standarduser freshclam ausführen. da passt ja irgendwas nicht, wieso braucht der ausführende user (schreib)zugriff wenn freshclam ja sowieso die rechte dropped und zum user clamav wechselt :confused:

Ein Programm darf nur die UID ändern, wenn es von root ausgeführt wurde (oder wenn die Datei das setuid bit gesetzt hat) - vereinfacht gesagt.

Zitat
/var/log/clamav braucht nach wie vor permission 666, wenn ich freshclam als standarduser aufrufen will, als root gehts auch mit 644 etc :(

Code:
DatabaseOwner STRING
              When started by root, drop privileges to a specified user.

Wenn du freshclam als root ausführst, wird zu dem Benutzer gewechselt, der als DatabaseOwner in der freshclam.conf gesetzt wurde.

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: graz
Posts: 4023
Zitat von luka
Ein Programm darf nur die UID ändern, wenn es von root ausgeführt wurde (oder wenn die Datei das setuid bit gesetzt hat) - vereinfacht gesagt.

Code:
DatabaseOwner STRING
              When started by root, drop privileges to a specified user.

Wenn du freshclam als root ausführst, wird zu dem Benutzer gewechselt, der als DatabaseOwner in der freshclam.conf gesetzt wurde.
ahja, lesen sollte man halt können :rolleyes:
danke für die hilfe! das problem ist jetzt anscheinend gelöst, ich bekomme keine fehlermeldungen mehr.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz