Dupliranje mailova nakon nadogradnje na wheezy

Nakon nadogradnje na izdanje wheezy, neki kolege su prijavili probleme poput duplih mailova u sandučićima svoje e-pošte, nemogućnost brisanje mailova iz Inboxa i slične čudne pojave. Iako problem podsjeća na situaciju s POP3 UIDL-ovima, koju smo opisali u članku http://sistemac.carnet.hr/node/380, uzrok nije ni u najmanju ruku jednak.

Problem nastaje ukoliko rabite format mbox (dakle klasični /var/mail) umjesto Maildir, što je slučaj kod velike većine kolega. Dovecot mora kreirati lock datoteku, kako ne bi neki drugi proces pokušao pisati u vaš inbox (npr. postfix) dok ga Dovecot drži otvorenim za čitanje i pisanje. Da bi to mogao, mora imati dovoljne privilegije, ili ovlasti root korisnika ili biti član grupe mail, u kojoj bi trebao biti svaki inbox unutar direktorija /var/mail.

Uzroci ovih simptoma se mogu pronaći u /var/log/mail.log:

Sep 1 08:49:51 server dovecot: imap(korisnik): Error: file_dotlock_create(/var/mail/korisnik) failed: 
Permission denied (euid=1033(korisnik) egid=1033(korisnik) missing +w perm: /var/mail,
we're not in group 8(mail), dir owned by 0:8 mode=0775) (set mail_privileged_group=mail)

Ne, nije dovoljno samo staviti korisnika dovecot u grupu "mail" (zapravo, uopće ne treba). Potrebno je negdje u kofiguraciju Dovecota upisati sljedeći redak (baš onako kako poruka u logu i savjetuje):

 mail_privileged_group = mail

Ali, gdje je to "negdje u konfiguraciju Dovecota"? Dovecot, kao i sve više drugih paketa u Debianu, rabi konfiguracijski direktorij conf.d, gdje se smještaju dijelovi konfiguracije. Prije se to sve nalazilo u jednoj velikoj datoteci (u ovom slučaju) dovecot.conf. Razlog je taj što je tako jednostavnije maintainerima konfigurirati tuđe pakete, jednostavno dodajući dijelove konfiguracije koje se tiču njihovih paketa.

Za sistemce situacija sada više nije tako jednostavna, ali zato postoji naredba grep:

# grep mail_privileged_group *
10-mail.conf:#mail_privileged_group =
95-cn7-upgrade.conf:mail_privileged_group = mail

Vidimo da se navedena opcija nalazi u datoteci 10-mail.conf i da nije postavljena ni na koju vrijednost (zakomentirana je). Isto tako, vidimo da je naknadno postavljana kako treba, ali u drugoj datoteci, koju je kreirala CARNetova instalacijska procedura. Funkcionalno je svejedno gdje ćete je upisati, ali kod nadogradnji ćete dobiti čuveno pitanje "želite li zamijeniti ili zadržati konfiguraciju" ukoliko je upišete u 10-mail.conf.

Inače, preporučujemo da promjene u tim direktorijima upišete u vlastite datoteke, tipa 99-local.conf, ili da budete sigurni da je to vaša konfiguracija, 99-lokalno.conf ili nešto što inače rabite. Tako ćete odmah prepoznati da datoeka ne pripada paketu.

Ostalo je napraviti još nešto:

# cd /var/mail
# chmod 600 /var/mail/*
# chgrp mail /var/mail/*
# ls -ld /var/mail
drwxrwsr-x 2 root mail 4096 Sep 3 13:42 /var/mail/

Ukoliko nije tako i kod vas, napravite sljedeće i restartajte dovecot:

# chmod 2775 /var/mail  # (2775 je ekvivalent drwxrwsr-x)
# chown root:mail /var/mail
# /etc/init.d/dovecot restart

Ovom operacijom smo osigurali da Dovecot ima pristup do svakog korisničkog mailboxa, a ujedno riješili još jedan problem koji se u logovima mogao vidjeti ovako:

imap(korisnik): Error: chown(/home/korisnik/mail/.imap/INBOX, group=12(mail)) failed: 
Operation not permitted (egid=1000(korisnik), group based on /var/mail/korisnik -
see http://wiki2.dovecot.org/Errors/ChgrpNoPerm)

Ovo je drugi problem, kojeg niste tako lako mogli primjetiti zbog patcha kojeg su primijenili u Debianu, ali se lako rješava s onim "chmod 600".

Više o ovoj problematici možete naći na sljedećim linkovima:

/usr/share/doc/dovecot-core/README.Debian.gz
http://wiki2.dovecot.org/Errors/ChgrpNoPerm
http://wiki2.dovecot.org/BasicConfiguration

 

Kuharice: 
Kategorije: 
Vote: 
0
No votes yet