A resposta para isso varia dependendo de como o sistema Postfix está configurado. Você menciona pam e LDAP, então eu suponho que você tenha todos os seus domínios em $ mydestination, ou use apenas um domínio (example.com, por exemplo)
Pode ser mais fácil configurar virtual_mailbox_domains com mapas LDAP em vez de mapas mysql / pgsql (a lógica é exatamente a mesma).
Você cria um único usuário do sistema, sem privilégios de login. Vou assumir um nome de usuário e um grupo de vmail: vmail aqui, mas o nome específico não é importante.
No LDAP, crie seu caminho de caixa de correio relativo a $ HOME para vmail (assim o maildir se tornará / home / vmail / user / Maildir /).
Adicione seus domínios a virtual_mailbox_domains. Crie um mapa virtual_mailbox_maps que inclua o nome de usuário como entrada e retorne username / Maildir como saída.
Definir
virtual_mailbox_domains = example.com
virtual_mailbox_base = /home/vmail/
virtual_mailbox_maps = ldap:/etc/postfix/ldap_virtual.cf
virtual_uid_maps = static:$uid_of_vmail
virtual_gid_maps = static:$gid_of_vmail
#$uid_of_vmail and $gid_of_vmail are obtained from the output of
#id vmail
em main.cf.
Veja link e link para mais informações (e o que você precisa colocar em ldap_virtual.cf).
FWIW, o Postfix executa o processo de entrega local como o uid / gid do usuário do sistema para o qual você está entregando.
As permissões gerais para / home são 755 com o proprietário e o grupo raiz, mas o usuário pode escrever dentro de ~ user. Portanto, o Postfix terá prazer em entregar para ~ user / Maildir /, mas não poderá criar ~ user. Usar usuários virtuais contornará esse problema concedendo acesso a todas as caixas de correio para um único uid / gid, que é acessado apenas pelo software pop3 / imap. O acesso direto à caixa de correio pelos usuários não será possível.