Am o serie de containere docker, toate configurate în mare parte identic, care folosesc cu succes cron pentru a rula joburi de backup pe noapte.
Am un alt container, configurat în mare parte identic, care încearcă și nu reușește să folosească cron pentru a rula o sarcină de rezervă de noapte.
Am instalat rsyslog pentru a obține mai multe informații, iar când cron rulează crontab-ul root, văd următoarea intrare în fișierul syslog:
CRON[83463]: Eroare la setarea acreditărilor utilizatorului
Singura diferență dintre acest container și toate celelalte este că acesta permite utilizatorilor să se conecteze folosind LDAP. Are următoarele linii suplimentare în Dockerfile:
RUN echo '*;*;*;Al0000-2400;svn' >> /etc/security/group.conf
COPIEAZĂ grupul_pam /usr/share/pam-configs/groups
RUN echo "sesiune necesară pam_mkhomedir.so skel=/etc/skel umask=077" >> /etc/pam.d/common-session
RUN sed -i 's#\(.*pam_ldap.so.*\)#auth required pam_group.so\n\1#' /etc/pam.d/common-auth
RUN sed -i 's#^passwd:.*#passwd: fișiere ldap systemd#;s#^group:.*#group: fișiere ldap systemd#;s#^shadow:.*#shadow: fișiere ldap#' / etc/nsswitch.conf
The grup_pam
fisierul arata ca:
Nume: activați /etc/security/group.conf
Implicit: da
Prioritate: 900
Auth-Type: Primary Auth:
necesar pam_group.so
În mod clar, ceva despre configurarea LDAP și încercarea de a ne asigura că toți utilizatorii sunt adăugați la svn
grup (care nu funcționează deloc) a spart sesiunea utilizatorului root pentru cron.
Am căutat pe tot internetul, dar nu am găsit această eroare specifică. Am încercat soluții similare, dar nimic nu funcționează.
ACTUALIZAȚI:
pam.d/common-auth arată astfel:
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth required pam_group.so
auth [success=1 default=ignore] pam_ldap.so use_first_pass
# aici este soluția dacă niciun modul nu reușește
auth requisite pam_deny.so
# amorsați stiva cu o valoare de returnare pozitivă dacă nu există deja una;
# acest lucru evită să returnăm o eroare doar pentru că nimic nu stabilește un cod de succes
# deoarece modulele de mai sus vor sări fiecare
auth required pam_permit.so
# și aici sunt mai multe module per pachet (blocul „Adițional”)
auth opțional pam_cap.so
pam.d/cron arată astfel:
@include common-auth
# Setează atributul procesului loginuid
sesiune necesară pam_loginuid.so
# Citiți variabilele de mediu din fișierele implicite ale pam_env, /etc/environment
# și /etc/security/pam_env.conf.
sesiune necesară pam_env.so
# În plus, citiți informațiile despre localitatea sistemului
sesiune necesară pam_env.so envfile=/etc/default/locale
@include common-account
@include common-session-noninteractive
# Setează limite de utilizator, vă rugăm să definiți limite pentru sarcinile cron
# prin /etc/security/limits.conf
sesiune necesară pam_limits.so