Bug 36620

Summary: не загружаются crontab пользователей из ldap
Product: Sisyphus Reporter: Vadim Gusev <kopilo4ka>
Component: vixie-cronAssignee: placeholder <placeholder>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: glebfm, ldv, nekapitan2009, placeholder, shaba
Version: unstable   
Hardware: all   
OS: Linux   

Description Vadim Gusev 2019-04-17 17:49:45 MSK
Имеем систему с авторизацией пользователей через ldap с помощью nslcd.
У пользователя jenkins настроены запуски задач в crontab. При загрузке сервера в момент запуска crond пользователь jenkins не существует, т. к. nslcd еще не запустился и crond, при попытке прочитать crontab пользователя, выдает ошибку:

crond[1028]: (jenkins) ORPHAN (no passwd entry)

Предлагается добавить патч, решающий эту проблему:

# diff -u /lib/systemd/system/crond.service.orig /lib/systemd/system/crond.service
--- /lib/systemd/system/crond.service.orig      2019-04-17 17:37:36.388205867 +0300
+++ /lib/systemd/system/crond.service   2019-04-17 16:42:09.136053899 +0300
@@ -1,6 +1,6 @@
 [Unit]
 Description=Vixie Cron Daemon
-After=syslog.target systemd-user-sessions.service
+After=syslog.target systemd-user-sessions.service nslcd.service

 [Service]
 ExecStart=/usr/sbin/crond -n

Вероятно slapd тоже можно добавить.
Comment 1 Dmitry V. Levin 2019-04-17 22:53:00 MSK
(In reply to comment #0)
> Имеем систему с авторизацией пользователей через ldap с помощью nslcd.
[...]
> Вероятно slapd тоже можно добавить.

Не должен cron знать, как у вас реализована passwd database.
Невозможно каждую службу, использующую passwd database, обучить всем мыслимым службам, которые могут реализовывать passwd database.
Name Service Switch создан для того, чтобы обычным приложениям не надо было задумываться о том, как реализована passwd database в каждой конкретной системе.

Надеюсь, что в systemd есть способ описать то, что вы хотите, не зашивая в каждую службу, использующую passwd database, информацию о каждой службе, которая в принципе может реализовывать passwd database.
Comment 2 Горев Андрей 2024-04-01 18:57:00 MSK
   Та же херь происходит и без LDAP. К примеру:
1. отредактировал crontab юзверь через crontab -e;
2. и хрен изменения начинают работать;
3. исправить можно только с помощью systemctl reload crond. Но, извините, это у меня есть права выполнить такую команду! А что делать обычному юзверю?