Bug 18137 - Пытается создать свой pid-файл в каталоге /var/empty
Summary: Пытается создать свой pid-файл в каталоге /var/empty
Status: CLOSED FIXED
Alias: None
Product: Branch 4.1
Classification: Distributions
Component: fetchmail (show other bugs)
Version: unspecified
Hardware: x86_64 Linux
: P2 major
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-4.1@altlinux.org
URL: http://forum.altlinux.org/index.php/t...
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-08 11:40 MSK by Yury Konovalov
Modified: 2008-12-28 09:05 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yury Konovalov 2008-12-08 11:40:51 MSK
Владелец/группа каталога /var/empty root:root, права 555
fetchmail запускаю как демон, service fetchmail start
в логе вижу:

[root@mserver mail]# cat /var/log/fetchmail/fetchmail.log
/var/empty/.fetchmail.pid: Отказано в доступе
fetchmail: lock creation failed.

Права на каталог /var/empty изменить можно, и тогда fetchmail работает, но перестает работать sshd, с криком:

Dec  8 09:33:49 mserver sshd[19641]: Unable to check blacklist for host key 0c:a8:13:be:c0:be:44:c1:58:2a:9d:b5:61:b9:5a:4e
Dec  8 09:33:49 mserver sshd[19641]: fatal: /var/empty must be owned by root and not group or world-writable.
Dec  8 09:33:56 mserver sshd: Checking sshd configuration: failed

Вот конфиг fetchmai'а:

[root@mserver var]# cat /etc/fetchmailrc
# Configuration created Sat May 22 13:33:07 2004 by fetchmailconf
set logfile "/var/log/fetchmail/fetchmail.log"
set postmaster "postmaster@domain"
set no bouncemail
set no spambounce
set properties ""
set daemon 600
poll address.domain with proto POP3
    localdomains тут перечислены локальные домены
    no envelope
    #envelope 'Delivered-To:'
    no dns
    user 'username' there with password 'password' is * here
    fetchall
    antispam 550

Установлены пакеты:
fetchmail-6.3.8-alt6.1
fetchmail-daemon-6.3.8-alt6.1

Единственный выход, это изменить права, потом запустить fetchmail, после того как он создаст свой pid файл изменить пара обратно, что бы мог работать sshd :(
Comment 1 Michael Shigorin 2008-12-09 10:52:02 MSK
Юрий, я не поддерживаю fetchmail и очень давно его не использую.  Вы можете это оспорить одним-единственным образом: помочь, а не перевешивать с того, кто добрался и починил ещё более важное, на того, кто вряд ли за полгода доберётся.

А если сильно мешает, патчи действительно приветствуются.  Пока же предлагаю засунуть под cron.

2 ender: Дим, это не к тому, чтоб всё бросить и подскакивать, но по факту в 4.1/branch ещё и дырка в fetchmail есть.  Поэтому стоит не спеша поправить в сизифе и сделать бэкпорт.  Ну и постарайся не нагребать всего-всего, чтоб оно не напрягало.
Comment 2 Afanasov Dmitry 2008-12-09 11:14:43 MSK
была у меня мысль его забрать даже, так что если терпения дождаться хватит - починим. если нет, то как показывает опыт, патчи дейстиетельно ускоряют починку :)

> Ну и постарайся не нагребать всего-всего, чтоб оно не напрягало.
беру лишь интересное, знакомое, либо прям на грани вылета из сизифа :)

Comment 3 Afanasov Dmitry 2008-12-09 12:08:29 MSK
ахааа, при установке пакета добавляется пользователь:
%_sbindir/useradd -r -n -M -g %name -d /var/empty -s /dev/null %name &>/dev/null ||:

судя по -d его домашний каталог - /var/empty. либо его сменить на какой-нить /var/run/fetchmail, либо fetchmail патчить, чтобы в daemon mode нормальный pidfile использовал.

где-то я эту проблему у fetchmail'а что-то видел...
Comment 4 Yury Konovalov 2008-12-09 16:35:32 MSK
Спасибо большое, изменил ему домашнюю директорию на /var/run/fetchmail 
и все стало на свои места.
Comment 5 Afanasov Dmitry 2008-12-09 16:50:34 MSK
пожалуйста :)

баг пока рано закрывать, надо в пакете изменения внести, чтобы при обновлении/установке редактировал.
Comment 6 Afanasov Dmitry 2008-12-24 15:57:00 MSK
разобрался, откуда этот "косяк".
lock.c: если не указан pidfile напрямую, то pidfile генерируется:
1. для рута: PID_DIR + fetchcmail.pid
2. для "простого" пользователя: FETCHMAIL_HOME + fetchmail.pid
   и если FETCHMAIL_HOME совпадает с домашним каталогом пользователя, то HOME + .fetchmail.pid

а fethcmail у нас работает от простого пользователя, FETCHMAIL_HOME устанавливается только через FETCHMAILHOME, иначе равен HOMEDIR.

вот и получаем, что pidfile сохраняется в /var/empty/.fetchmail.pid, где /var/empty - домашний каталог fetchmail'а.

в fetchmail.init pidfile для глобавльных настроек не задается, видимо в расчете, что fetchmail сам соориентируется. так и есть, для рута - там генерится /var/run/fetchmail.pid. но у нас-то не рут, а системный юзверь.

посему, запишу-ка я в init скрипте параметр --pidfile для для глобальных настроек и сменю homedir на /var/lib/fetchmail. homedir будет конечно пустым, на на всякий пусть будет :)
Comment 7 Afanasov Dmitry 2008-12-24 16:17:12 MSK
сборку отправил как в сизиф, так и в M41.
homedir оставил /var/run/fetchmail, в качестве pidfile указал /var/run/fetchmail/fetchmail.pid. указал как для start-stop-daemon, так и для fetchmail.

service stop/start проверил - работает.

как до бранча доберется - можно закрывать.
Comment 8 Afanasov Dmitry 2008-12-25 08:31:57 MSK
всё, добрался.