Portál AbcLinuxu, 19. dubna 2024 03:48


Dotaz: Systemovi uzivatele = Postfix + Dovecot

8.2.2012 19:01 motorcb | skóre: 12
Systemovi uzivatele = Postfix + Dovecot
Přečteno: 818×
Odpovědět | Admin

Zdravím. Mám čistý linux Debian a hraji si s Postfixem. Existuje systemový uživatel s názvem "pokusny".

apt-get install postfix
echo "Email" | mail pokusny; tail -f /var/log/mail.log

Feb  8 18:32:58 satan postfix/local[1980]: 403665A00B: to=, orig_to=, relay=local, delay=0.05, delays=0.03/0/0/0.01, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Feb  8 18:32:58 satan postfix/qmgr[1893]: 403665A00B: removed

Doručí email procmailem do /var/mail/pokusny To je v pořádku :) Já bych ovšem chtěl doručovat emaily Dovecotem.

 

aptitude install dovecot-common

Aby emaily pro systemové uživatele byly doručovány dovecotem, přenastavim v souboru /etc/postfix/main.cf

mailbox_command = /usr/lib/dovecot/deliver

A v souboru /etc/dovecot/dovecot.conf nastavím kam se mají emaly ukládat:

mail_location = maildir:/var/mail/%u

soubor /etc/dovecot/dovecot.conf:

protocols = none
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/var/mail/%u
mail_privileged_group = mail
protocol imap {
}
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
}
protocol managesieve {
}
protocol lda {
  postmaster_address = motorcb@seznam.cz
}
auth default {
  mechanisms = plain
  passdb pam {
  }
  userdb passwd {
  }
  user = root
}
dict {
}
plugin {
}
# ls -al /var/
drwxrwsr-x  2 root mail  4096 Feb  8 18:32 mail

Přijetí emailu zkončí následující chybou: echo "Email" | mail pokusny; tail -f /var/log/mail.log

Feb  8 18:49:55 satan postfix/qmgr[2854]: DE24D5A03F: from=, size=300, nrcpt=1 (queue active)
Feb  8 18:49:55 satan dovecot: deliver(pokusny): mkdir(/var/mail/pokusny/cur) failed: Permission denied (euid=1000(pokusny) egid=1000(pokusny) missing +w perm: /var/mail)
Feb  8 18:49:55 satan dovecot: deliver(pokusny): msgid=<20120208174955.DE24D5A03F@satan.peklo.test>: save failed to INBOX: Internal error occurred. Refer to server log for more information. [2012-02-08 18:49:55]
Feb  8 18:49:55 satan postfix/local[2877]: DE24D5A03F: to=, orig_to=, relay=local, delay=0.02, delays=0.01/0/0/0.01, dsn=4.3.0, status=deferred (temporary failure)

Jak donutim Posfix, nebo Dovecot aby dorucoval emauly s opravnenim skopiny "mail", ktera ma opravneni na /var/mail ?

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.2.2012 11:26 NN
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebude stacit opravit to co si to zada ?
missing +w perm: /var/mail
Tudiz devcot nema pravo zapisu..

NN
9.2.2012 13:26 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Ano, nejsou práva ale nastavit práva /var/mail na 777 není zrovna nejbezpečnější způsob,ne?

Dovecot tam ukládá s opravěnním uživatele pokusny ( failed: Permission denied (euid=1000(pokusny) egid=1000(pokusny) )

Já bych potřeboval donutit Dovecot aby používal uprávněním skupiny mail
# ls -al /var/
drwxrwsr-x  2 root mail  4096 Feb  8 18:32 mail 
Nebo klidně můžu vytvořit novou skupinu a uživatele ale nevím jak Dovecot donutím k tomu aby ukládal poštu s nastaveným oprávněním.

Opravdu nikdo neví jak na to?
10.2.2012 13:07 Host
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Tyhle parametry nepomuzou?
first_valid_uid 
last_valid_uid 
first_valid_gid 
last_valid_gid 
12.2.2012 22:24 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot

Nastavil jsem:

first_valid_uid = 500
last_valid_uid = 5000000
first_valid_gid = 1
last_valid_gid = 1000000

Restartoval dovecot a stale stejny problem :(

Feb 12 22:15:24 satan dovecot: Killed with signal 15 (by pid=21903 uid=0 code=kill)
Feb 12 22:15:24 satan dovecot: Dovecot v1.2.15 starting up (core dumps disabled)
Feb 12 22:15:26 satan postfix/pickup[21589]: C70685A268: uid=0 from=
Feb 12 22:15:26 satan postfix/cleanup[21897]: C70685A268: message-id=<20120212211526.C70685A268@satan.peklo.test>
Feb 12 22:15:26 satan postfix/qmgr[2854]: C70685A268: from=, size=300, nrcpt=1 (queue active)
Feb 12 22:15:26 satan dovecot: deliver(pokusny): mkdir(/var/mail/pokusny/cur) failed: Permission denied (euid=1000(pokusny)egid=1000(pokusny) missing +w perm: /var/mail)
Feb 12 22:15:26 satan dovecot: deliver(pokusny): msgid=<20120212211526.C70685A268@satan.peklo.test>: save failed to INBOX: Internal error occurred. Refer to server log for more information. [2012-02-12 22:15:26]
Feb 12 22:15:26 satan postfix/local[21870]: C70685A268: to=, orig_to=, relay=local, delay=0.02, delays=0.01/0/0/0.01, dsn=4.3.0, status=deferred (temporary failure)


Opravdu by nekdo nevedel jak na to?

Diky moc
pavlix avatar 13.2.2012 00:45 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Věděl. Dovecot má wiki. V té wiki je přímo sekce o provozu s Postfixem. Co si tak pamatuju, je tam vše popsáno, a pak to chce trochu u některých věcí přemýšlet.

Tip: Rozmysli si, jestli používáš skutečné nebo virtuální uživatele. V druhém případě je potřeba všem virtuálním uživatelům dát společné UID.

Jinak kombinace postfixu a dovecotu je dobrá, doporučuju u ní vydržet, i kdybys měl zpočátku potíže to dát dohromady.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
13.2.2012 11:08 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Pouzivam skutecne uzivatele, na ktere to nemuzu rozchodit a z wiki jsem nic nevycetl. Mam konkretni problem, ktery nemohu vyresit...
pavlix avatar 13.2.2012 12:02 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
OK, už asi rozumím.

IMO zapisuješ pod UID/GID uživatele do /var/mail/$USER. K tomu neexistuje rozumný důvod. Co takhle zkusit zapisovat do /home/$USER/mail. Tak se to většinou IMO dělá.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
13.2.2012 15:53 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
A to není způsob jak nastavit dovecot aby doručoval zprávy pro systemové uživatele s předem nastaveným oprvněním?
Když to umí procmail... Viz můj první přispěvek.
pavlix avatar 13.2.2012 18:53 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
A to není způsob jak nastavit dovecot aby doručoval zprávy pro systemové uživatele s předem nastaveným oprvněním?
Proč bys proboha měl chtít nastavovat oprávnění nějak jinak, než aby každý systémový uživatel mohl přistupovat ke své poště? Podle mě jsou systémoví uživatelé přesně k tomu.
Když to umí procmail... Viz můj první přispěvek.

Můžeš tedy alespoň nějak srozumitelně napsat o co se snažíš? Nevím o tom, že by procmail uměl nějaké zvláštní čachry s právy, ale nevím ani proč by člověk něco takového měl chtít.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
13.2.2012 19:34 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Jde mi o to abych mohl poštu pro systemové uživatele vybírat i přes webové rozhraní. A když každá složka s emaily bude mít nastavené jiné oprávnění,tak to bude problém...
pavlix avatar 13.2.2012 19:46 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Jde mi o to abych mohl poštu pro systemové uživatele vybírat i přes webové rozhraní.
Konečně specifikace cíle.
A když každá složka s emaily bude mít nastavené jiné oprávnění,tak to bude problém...
Můžeš to nějak podložit či zdůvodnit? IMO je to totiž blbost.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
13.2.2012 20:31 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Můžeš to nějak podložit či zdůvodnit? IMO je to totiž blbost.
Tak předpokládám, že z webového rozhraní budu sahat Dovecotem k emailum. A nejsem si jistý, zda Dovecot bude mít práva jako systemoví uživatelé kteří jsou v systému (UID 1000+)

Radši bych uložil emaily s právy Dovecotu a bylo by to jasné :)
pavlix avatar 13.2.2012 21:10 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Tak předpokládám, že z webového rozhraní budu sahat Dovecotem k emailum. A nejsem si jistý, zda Dovecot bude mít práva jako systemoví uživatelé kteří jsou v systému (UID 1000+)
Hledal bych kořen celého problému v tvém nepochopení, jak fungují systémoví uživatelí v Dovecotu.

Aneb klasický problém. Předpokládáš, že to nepůjde. Řešením tvého problému je přestat tak předpokládat.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
14.2.2012 19:42 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Dobře tedy, ukládat emaily pro systémové uživatele budu do mail_location = maildir:~/Maildir
A pro virtuální uživatele nastavím postfix (main.cf) aby ukládal jejich emaily do /var/mail/virtual

virtual_mailbox_domains = hash:/etc/postfix/vdomains
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = hash:/etc/postfix/vmailboxes
virtual_alias_maps = hash:/etc/postfix/valiases
virtual_minimum_uid = 1001
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001


To mi funguje. Ale ted k vybírání emailů přes Dovecot (IMAP). Jak dovecot pozná, že jde o systémového uživatele a jak pozná, že jde o virtuálního uživatele?
Konfigurace Dovecotu má nastaveno pouze:
mail_location = maildir:~/Maildir
Jakým příkazem nastavím umístění složky s virtuálními emaily?
pavlix avatar 15.2.2012 02:28 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Doporučuju maily, pokud je to jen trochu možné, Postfixem neukládat. Na to je dobrý právě Dovecot. Jestli chceš nějaký důvod, tak mě napadají dva:

1) Dovecot si své maily rovnou zaindexuje

2) Dovecot umožňuje filtrování mailů pomoci SIEVE skriptů

Popravdě řečeno systémové a virtuální uživatele na žádném systému v Dovecotu nekombinuju. Když nad tím tak přemýšlím, tak mi to vlastně ani nedává moc smysl.

Ale Dovecot to umí tak, že použiješ více databází uživatelů a ty databáze pak specifikují home directories, které můžou být v různém umístění pro lokální a virtuální uživatele. To samé platí pro UID mapování...
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
15.2.2012 13:16 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Omlouvam se, spatne jsem se vyjadril.
Samozrejme uklada veskere emaily Dovecot.
Pro systémové uživatele:
mailbox_command = /usr/lib/dovecot/deliver

A pro virtuální uživatele:
virtual_mailbox_domains = hash:/etc/postfix/vdomains
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = hash:/etc/postfix/vmailboxes
virtual_alias_maps = hash:/etc/postfix/valiases
virtual_minimum_uid = 1001
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001


dovecot.conf mam nastaveno ukládání do: mail_location = maildir:~/Maildir

Došli jsme k závěru, že není vhodné kombinovat systémové u virtuální uživatele. Řešení je jednoduché(viz můj první dotaz) - ukládat emaily systémových a virtuálních uživatelů do stejného adresáře ( mail_location = maildir:/var/mail/%u ) Dovecot pak bude vzdy vědět kam šáhnout :)
Proto se znovu odkazuji na první příspěvek, zda je možné donutit Dovecot aby ukládal poštu s předem nastaveným oprávněním? Nepříklad uživatele vmail?

Diky
pavlix avatar 16.2.2012 13:49 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Omlouvam se, spatne jsem se vyjadril. Samozrejme uklada veskere emaily Dovecot.
V pořádku, aspoň že je situace objasněná.
Došli jsme k závěru, že není vhodné kombinovat systémové a virtuální uživatele. Řešení je jednoduché(viz můj první dotaz) - ukládat emaily systémových a virtuálních uživatelů do stejného adresáře ( mail_location = maildir:/var/mail/%u ) Dovecot pak bude vzdy vědět kam šáhnout :)
Tak moment, došli jste k závěru, že není vhodné kombinovat systémové a virtuální uživatelé. A jak řešení jsi navrhl kombinovat systémové a virtuální uživatele?
Proto se znovu odkazuji na první příspěvek, zda je možné donutit Dovecot aby ukládal poštu s předem nastaveným oprávněním? Nepříklad uživatele vmail?
Tohle mě opravdu rozsekalo. Nic ve zlém, ale k čemu chceš systémové uživatele, když jim na poštu sebereš práva? Vždyť tím naprosto popíráš smysl systémových uživatelů.

V tom systému máš logickou chybu, ne chybu v konfiguraci. Doporučuju začít úplně odznovu v navrhování celého toho systému (ne v konfiguraci, k té se můžeš klidně vrátit). Dobře funguje tužka/fixa a papír. Čím větší, tím lepší.

Pro začátek můžu doporučit ujasnění pojmů systémový a virtuální uživatel a zdůvodnění, k čemu který ten mechanismus potřebujete. U virtuálního uživatele bude zdůvodnění jednoduché (více domén, nezávislost na /etc/passwd), ale zajímavější bude si uvědomit jak a k čemu budou sloužit schránky systémových uživatelů a jestli se prostě nedají jako celek přesměrovat (pokud tam chodí systémová pošta), nebo prostě vůbec nepoužívat.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
pavlix avatar 16.2.2012 14:02 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Systemovi uzivatele = Postfix + Dovecot
Řešení ve srozumitelné formě ze dvou pohledů...

Filosofický pohled:

* Nepoužívat systémové uživatele v Dovecotu

* Všichni IMAP uživatelé budou virtuální uživatelé

Praktický pohled:

* Postfix: Přestat delegovat local users na Dovecot (použít klasické mailboxy)

* Postfix: Jednotlivé uživatele přesměrovat na virtuální uživatele (nemusí být zdaleka potřeba přesměrovat každý jednotlivý sys účet)

* Dovecot: Nastavit virtuálním uživatelům home v (třeba textové) databázi na podadresář adresáře vmail

* Dovecot: Ponechat mail_location odvozené od home (~/Maildir), i další soubory (třeba SIEVE) se odvodí od home

Výsledek ke všeobecné spokojenosti. Systémové maily (pokud vůbec nějaké jsou) se správě přesměrují. IMAP uživatelé přistupují pouze k virtuálním účtům.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.