Добрый день.
Astra Linux SE 1.5 (Smolensk)
Настроен почтовый сервер exim4+dovecot по документации Ruk_admin_1.pdf.
Проблема следующая:
Если клиент (user001) работает под уровнем выше 0 и в thunderberd примет письмо с 0 уровнем, то на почтовом сервере в папке /var/mail/user001/ изменится мандатная метка файла dovecot-uidlist
затем, когда user001 перезаходит под 0 уровнем и запускает клиента thunderberd, то он не видит никаких писем во входящих из-за несмены метки на этот файл.
Лог dovecot:
как видно из лога, команда
если по ssh зайти на почтовый сервер под user001, то мы не видим этот файл:
а вот под рутом видим:
если из под рута выполнить
Собственно вопрос, как исправить ситуацию? Какие данные еще необходимы для поиска проблемы?
10.06.18
удалось более детально понять механизм проблемы
допустим клиент почты запущен под уровнем 2, тут ему пришло новое письмо
файл
и вот если юзер сейчас закроет тандерберд и перезайдет под меньшим уровнем, то права на этом файле так и останутся и проблема остается.
А вот если под этим же уровнем 2 перезапустить тандерберд, то на почтовом сервер выполниться
Теперь при выходе со 2 уровня в 1-ый или нулевой все будет нормально.
Приучить пользователей перед логаутом перезапускать почтовый клиент не вариант.
Надо как-то фиксить работу dovecot-а, чтобы внешний скрипт
Пока что в таком виде работа почты под разными уровнями не возможна. Это серьезная проблема, которая стопорит внедрение данной системы. Неужели раньше никто с этим не сталкивался?
Astra Linux SE 1.5 (Smolensk)
Настроен почтовый сервер exim4+dovecot по документации Ruk_admin_1.pdf.
Проблема следующая:
Если клиент (user001) работает под уровнем выше 0 и в thunderberd примет письмо с 0 уровнем, то на почтовом сервере в папке /var/mail/user001/ изменится мандатная метка файла dovecot-uidlist
Код:
root@ns1:/var/mail/user001# pdp-ls -M /var/mail/user001/
итого 56
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole cur
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.index.cache
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.index.log
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.mailbox.log
-rw-------m-- 1 user001 mail Уровень_1:Низкий:Нет:0x0 dovecot-uidlist
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot-uidvalidity
-r--r--r--m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot-uidvalidity.5b1b6732
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole new
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole subscriptions
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole tmp
Лог dovecot:
Код:
Jun 09 11:59:58 imap-login: Info: Login: user=<user001>, method=PLAIN, rip=192.168.2.75, lip=192.168.2.71, mpid=4090, session=<ut2wvTFucgDAqAJL>
Jun 09 11:59:58 imap(user001): Info: Current process with pid=4090 ppid=4056 (level=0, category=0x0)
Jun 09 11:59:58 imap(user001): Info: Current socket (level=0, category=0x0)
Jun 09 11:59:58 imap(user001): Info: getmacnam_r = OK
Jun 09 11:59:58 imap(user001): Info: Result of mac_set_proc() is 0 for pid 4090 (No such file or directory)
Jun 09 11:59:58 imap(user001): Info: Process with pid=4090 (level=0, category=0x0)
Jun 09 11:59:58 imap(user001): Info: /usr/sbin/astrase-fix-maildir /var/mail/user001
Jun 09 11:59:58 imap(user001): Info: /usr/sbin/astrase-fix-maildir /var/mail/user001
Jun 09 11:59:58 imap(user001): Error: open(/var/mail/user001/dovecot-uidlist) failed: Operation not permitted
Jun 09 11:59:58 imap(user001): Info: Can't read mail(level=0, category=0x0, uid=1)
Jun 09 11:59:58 imap(user001): Error: open(/var/mail/user001/dovecot-uidlist) failed: Operation not permitted
Jun 09 11:59:58 imap(user001): Info: Can't read mail(level=0, category=0x0, uid=2)
/usr/sbin/astrase-fix-maildir /var/mail/user001
выполняется, но она не меняет метку файлу /var/mail/user001/dovecot-uidlist
если по ssh зайти на почтовый сервер под user001, то мы не видим этот файл:
Код:
user001@ns1:~$ pdp-ls -M /var/mail/user001/
итого 52
drwx--S---m-- 2 user001 mail СС:Низкий:0xffffffffffffffff:ccnr,ehole cur
-rw-------m-- 1 user001 mail Обычный:Низкий:0x0:ehole dovecot.index.cache
-rw-------m-- 1 user001 mail Обычный:Низкий:0x0:ehole dovecot.index.log
-rw-------m-- 1 user001 mail Обычный:Низкий:0x0:ehole dovecot.mailbox.log
-rw-------m-- 1 user001 mail Обычный:Низкий:0x0:ehole dovecot-uidvalidity
-r--r--r--m-- 1 user001 mail Обычный:Низкий:0x0:ehole dovecot-uidvalidity.5b1b6732
drwx--S---m-- 2 user001 mail СС:Низкий:0xffffffffffffffff:ccnr,ehole new
-rw-------m-- 1 user001 mail Обычный:Низкий:0x0:ehole subscriptions
drwx--S---m-- 2 user001 mail СС:Низкий:0xffffffffffffffff:ccnr,ehole tmp
Код:
root@ns1:/var/mail/user001# pdp-ls -M /var/mail/user001/
итого 56
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole cur
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.index.cache
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.index.log
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.mailbox.log
-rw-------m-- 1 user001 mail Уровень_1:Низкий:Нет:0x0 dovecot-uidlist
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot-uidvalidity
-r--r--r--m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot-uidvalidity.5b1b6732
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole new
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole subscriptions
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole tmp
/usr/sbin/astrase-fix-maildir /var/mail/user001
, то все становится нормально до следующего получения почты с уровнем выше 0
Код:
root@ns1:/var/mail/user001# pdp-ls -M /var/mail/user001/
итого 60
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole cur
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.index.cache
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.index.log
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot.mailbox.log
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot-uidlist
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot-uidvalidity
-r--r--r--m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole dovecot-uidvalidity.5b1b6732
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole new
-rw-------m-- 1 user001 mail Уровень_0:Низкий:Нет:ehole subscriptions
drwx--S---m-- 2 user001 mail Уровень_3:Низкий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr,ehole tmp
10.06.18
удалось более детально понять механизм проблемы
допустим клиент почты запущен под уровнем 2, тут ему пришло новое письмо
файл
dovecot-uidlist
стал с атрибутами Уровень_2:Низкий:Нет:0x0
и вот если юзер сейчас закроет тандерберд и перезайдет под меньшим уровнем, то права на этом файле так и останутся и проблема остается.
А вот если под этим же уровнем 2 перезапустить тандерберд, то на почтовом сервер выполниться
/usr/sbin/astrase-fix-maildir /var/mail/user001
и атрибуты файла dovecot-uidlist
станут нормальными Уровень_0:Низкий:Нет:ehole
.Теперь при выходе со 2 уровня в 1-ый или нулевой все будет нормально.
Приучить пользователей перед логаутом перезапускать почтовый клиент не вариант.
Надо как-то фиксить работу dovecot-а, чтобы внешний скрипт
/usr/sbin/astrase-fix-maildir /var/mail/user001
запускался не только вначале подключения клиента, но и после его дисконекта. Ну или придумать еще какой-то костыль. Пока что в таком виде работа почты под разными уровнями не возможна. Это серьезная проблема, которая стопорит внедрение данной системы. Неужели раньше никто с этим не сталкивался?
Последнее редактирование: