Per-user quota (passwd)

Aki Tuomi aki.tuomi at dovecot.fi
Wed Jun 28 12:36:40 EEST 2017


On 28.06.2017 12:25, Evgeniy Korneechev wrote:
> Hello!
> We have passwd=pam, userdb=passwd.
> passdb {
>   driver = pam #server was entered domain Active Directory
> }
> userdb {
>   driver = passwd
>   override_fields = home=/var/vmail/glu_vrem/%u
> }
>
> How can i use per-user quota? Only passwd-file?
>
> I tried:
> userdb {
>   args = /etc/imap.passwd
>   driver = passwd-file
>   override_fields = home=/var/vmail/glu_vrem/%u
> }
> /etc/imap.passwd:
> administrator:*:95400500:95400513:Administrator:/home/DOM/administrator:/bin/bash::userdb_quota_rule=*:bytes=10G
>
> Authentication and quota - now OK. But doesn't work sending and receiving mail... 
> postfix say 'Unknown user'...
>
> Is there "extra_field" in passwd-file for email?
> What generally will be advice on quotas in our case?
>
>
>
>
>
> dovecot -n:
> # 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.16 (fed8554)
> # OS: Linux 4.4.39-std-def-alt0.M80P.1 x86_64 ALT 8.1 Server 
> auth_debug = yes
> auth_debug_passwords = yes
> auth_mechanisms = plain login cram-md5
> auth_socket_path = /var/run/dovecot/auth-userdb
> auth_username_chars = 
> auth_verbose = yes
> auth_verbose_passwords = plain
> base_dir = /var/run/dovecot/
> debug_log_path = /var/log/dovecot
> disable_plaintext_auth = no
> first_valid_gid = 502
> first_valid_uid = 502
> last_valid_gid = 268999999
> last_valid_uid = 268999999
> log_path = /var/log/dovecot
> login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
> mail_access_groups = vmail
> mail_debug = yes
> mail_gid = 502
> mail_location = maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/
> mail_plugins = " quota autocreate"
> mail_privileged_group = vmail
> mail_uid = 502
> managesieve_notify_capability = mailto
> managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapflags notify
> mbox_write_locks = fcntl
> namespace {
>   list = children
>   location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
>   prefix = shared/%%u/
>   separator = /
>   subscriptions = yes
>   type = shared
> }
> namespace inbox {
>   inbox = yes
>   location = 
>   prefix = 
>   separator = /
>   type = private
> }
> passdb {
>   driver = pam
> }
> passdb {
>   args = /etc/dovecot/dovecot-sql.conf.ext
>   driver = sql
> }
> plugin {
>   quota_rule = *:storage=5G
>   recipient_delimiter = +
>   sieve = /etc/dovecot/sieves/default.sieve
>   sieve_default = /etc/dovecot/sieves/default.sieve
>   sieve_dir = ~/sieve
>   sieve_extensions = +notify +imapflags
>   sieve_max_redirects = 8
> }
> protocols = imap pop3 lmtp sieve
> service auth-worker {
>   user = root
> }
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     group = postfix
>     mode = 0666
>     user = postfix
>   }
>   unix_listener auth-userdb {
>     group = vmail
>     mode = 0666
>     user = vmail
>   }
> }
> service dict {
>   unix_listener dict {
>     group = vmail
>     mode = 0600
>     user = vmail
>   }
> }
> service imap-login {
>   inet_listener imap {
>     port = 143
>   }
> }
> service imap {
>   process_limit = 1024
>   vsz_limit = 256 M
> }
> service lmtp {
>   unix_listener lmtp {
>     mode = 0666
>   }
> }
> service managesieve-login {
>   inet_listener sieve {
>     port = 4190
>   }
>   vsz_limit = 64 M
> }
> service pop3-login {
>   inet_listener pop3 {
>     port = 110
>   }
> }
> service pop3 {
>   process_limit = 1024
> }
> ssl_ca = </usr/share/ca-certificates/ca-bundle.crt
> ssl_cert = </etc/dovecot/server.crt
> ssl_key =  # hidden, use -P to show it
> userdb {
>   driver = passwd
>   override_fields = home=/var/vmail/glu_vrem/%u
> }
> userdb {
>   args = /etc/dovecot/dovecot-sql.conf.ext
>   driver = sql
> }
> protocol lmtp {
>   mail_plugins = " quota autocreate sieve"
> }
> protocol lda {
>   mail_plugins = " quota autocreate  sieve quota"
>   plugin {
>     quota = dict:user::file:/var/vmail/glu_vrem/%n/.quotausage
>   }
> }
> protocol imap {
>   mail_plugins = " quota autocreate autocreate imap_quota"
>   plugin {
>     autocreate = INBOX
>     autocreate2 = Sent
>     autocreate3 = Trash
>     autocreate4 = Drafts
>     autocreate5 = Junk
>     autosubscribe = INBOX
>     autosubscribe2 = Sent
>     autosubscribe3 = Trash
>     autosubscribe4 = Drafts
>     autosubscribe5 = Junk
>     quota = dict:user::file:/var/vmail/glu_vrem/%n/.quotausage
>   }
> }
> protocol sieve {
>   mail_max_userip_connections = 10
>   managesieve_implementation_string = Dovecot Pigeonhole
>   managesieve_logout_format = bytes=%i/%o
>   managesieve_max_compile_errors = 5
>   managesieve_max_line_length = 65536
> }
> protocol pop3 {
>   pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
>   pop3_uidl_format = %08Xu%08Xv
> }

Turn on auth_debug and auth_verbose and see what it says.

Aki


More information about the dovecot mailing list