Dovecot и не системные пользователи

Аватар пользователя WebCode

Всем привет.

Уже башню о монитор разбил, но не нашел, как в Dovecot'е создать не системного пользователя. Как должен выглядить dovecot.passwd с этими пользователями???

Аватар пользователя sergeil

Re: Dovecot и не системные пользователи

Цитата:
WebCode писал:
Всем привет.

Уже башню о монитор разбил, но не нашел, как в Dovecot'е создать не системного пользователя. Как должен выглядить dovecot.passwd с этими пользователями???

Согласно документации на dovecot, есть возможность использования passwd-like passfile. Вот что пишется по этому поводу ...

file:///usr/share/doc/dovecot-0.99.13/examples/dovecot-example.conf
...
# User database specifies where mails are located and what user/group IDs
# own them. For single-UID configuration use "static".
# http://wiki.dovecot.org/Authentication
# http://wiki.dovecot.org/VirtualUsers
# passwd: /etc/passwd or similiar, using getpwnam()
# passwd-file : passwd-like file with specified location
# static uid= gid= home=: static settings
# vpopmail: vpopmail library
# ldap : LDAP, see doc/dovecot-ldap.conf
# pgsql : a PostgreSQL database, see doc/dovecot-pgsql.conf
auth_userdb = passwd

Аватар пользователя WebCode

Re: Dovecot и не системные пользователи

То что можно, я знаю, мне бы формат файла, ну типа:
mail:login:pass:home
и и.п.

Аватар пользователя sergeil

Re: Dovecot и не системные пользователи

Цитата:
WebCode писал:
То что можно, я знаю, мне бы формат файла, ну типа:
mail:login:pass:home
и и.п.

Попробуйте для начала тот-же формат, что и в /etc/passwd
Не готов ответить прямо сейчас, но решение где-то на поверхности ...

Аватар пользователя WebCode

Re: Dovecot и не системные пользователи

Раздабыл файл с работающего сервера. Вот привожу пример:

user@domain.com:$2a$04$znJk9GiH8F7uegXJJdwVXOR8woxso.cgnzVAIjRMu1gx4bARWfN.W:1008:1008:domain.com admin:/home/dir:::/var/mail/dir

Сначало понятно, ящик, а потом идет пароль??? В чем он? В crypt? Дальше GID и UID, потом полное имя юзера, затем хом-папка и в конце папка почты. Между хом и мыло папками 2 пустых поля.

Вот чем зашиврован пароль?

Аватар пользователя sergeil

Re: Dovecot и не системные пользователи

Сколько я ни искал, а специлизированной утилиты для генерации парлей или управления файлами паролей для passwd-file dovect я так и не нашел.

Придется довольствоваться скриптом, который я случайно откопал в форумах (возможно, под Вашу схему нужна модификация)

http://dovecot.org/pipermail/dovecot/2004-November/005375.html

#!/usr/bin/perl
# generates a passwd-file format file for dovecot imapd.
# this allows users to choose either maildir or mbox
# defaults to mbox; maildir users go into $maildirusers

# passwd-file format:
# user:password:uid:gid:(gecos):home:(shell):flags:mail

# files
$syspass="/etc/passwd";
$sysshad="/etc/shadow";
$dovecotpass="/usr/local/etc/dovecot.passwd";
$maildirusers="/usr/local/etc/dovecot.maildirusers";
umask 0077;

if(-f $dovecotpass){
  system("rm $dovecotpass"); # start fresh
}

open(SYSPASS,"<$syspass")||die("Can't open system passwd file $!\n");
while(){
  chomp($_);
  $syspassline=$_;
  ($user,$pass,$uid,$gid,$gecos,$home,$shell) = split(/:/,$syspassline);

  if($uid>100){    # don't run on system accounts
    $sysshadline=`grep '^$user:' $sysshad`;
    ($shaduser,$shadpass)=split(/:/,$sysshadline,3);
    
    $maildiruser=`grep '^$user\$' $maildirusers`;
    $flags=""; # for passwd-file format
    open(OUT,">>$dovecotpass");
    if($maildiruser){
      $mailbox="maildir:/home/$user/Maildir";
    }else{
      $mailbox="mbox:~/mail/:INBOX=/home/$user/mail/inbox";
    }
    print OUT "$user:$shadpass:$uid:$gid:$gecos:$home:$shell:$flags:$mailbox\n";
    close(OUT);
  }
}
close(SYSPASS);

#FIN

или PERL-выражениями, рекомендованными в документации на dovecot...

RSS-материал