У меня есть Dovecot 1.2.12, работающий на Ubuntu Server 10.10, и я пытаюсь получить скрипт после входа в систему для регистрации даты и времени, когда пользователи обращаются к своему почтовому ящику IMAP. Я прочитал Dovecot wiki и добавил следующее в dovecot.conf:
mail_executable: /usr/lib/dovecot/logon.sh /usr/lib/dovecot/imap
Сценарий logon.sh довольно прост (запись всех обращений пользователей в один файл, плюс метод touch, приведенный в вики):
#!/bin/sh
dt=$(date)
echo $USER $dt >> /opt/logon
touch ~/.last_login
Со строкой mail_executable, как указано выше, сценарий успешно запускается, когда пользователь пытается войти в систему, но доступ к IMAP-серверу не удается (клиентами являются веб-почта Roundcube, запущенная на том же ящике, и MS Outlook). Журнал /var/log/mail.log не очень показателен. Вход в систему регистрируется нормально, но за ним ничего не следует:
dovecot: imap-login: Login: user=<username>, method=PLAIN, rip=172.16.2.26, lip=172.16.2.26, secured
Помещение скрипта после исполняемого файла IMAP, например, так:
mail_executable: /usr/lib/dovecot/imap /usr/lib/dovecot/logon.sh
приводит к нормальной работе IMAP, но скрипт не запускается.
Вывод dovecot -n:
# 1.2.12: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.35-32-server x86_64 Ubuntu 10.10 ext4
log_timestamp: %Y-%m-%d %H:%M:%S
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable: /usr/lib/dovecot/imap-login
mail_privileged_group: mail
mail_location: maildir:/home/%u/Maildir
mail_debug: yes
mbox_write_locks: fcntl dotlock
mail_executable: /usr/lib/dovecot/logon.sh /usr/lib/dovecot/imap
auth default:
passdb:
driver: pam
userdb:
driver: passwd
Мне кажется, что я упускаю что-то очевидное. Пожалуйста, помогите! Заранее спасибо.
В документации сказано, что вы должны изменить параметр mail_executable
.
mail_executable: /usr/lib/dovecot/logon.sh
и двоичный файл IMAP / POP вызывается из вашего скрипта. Проверьте следующий комментарий в документе
# Finally execute the imap/pop3 binary. If you use both, you'll need two scripts.
exec /usr/local/libexec/dovecot/imap "$@"
Я не уверен, поддерживает ли версия 1.x указание нескольких сценариев через mail_executable