ฉันมีคอนเทนเนอร์นักเทียบท่าจำนวนหนึ่ง ซึ่งส่วนใหญ่ตั้งค่าเหมือนกันทั้งหมด ซึ่งใช้ cron เพื่อเรียกใช้งานการสำรองข้อมูลทุกคืนได้สำเร็จ
ฉันมีคอนเทนเนอร์อื่น ตั้งค่าเหมือนกันเป็นส่วนใหญ่ ซึ่งพยายามใช้ cron เพื่อเรียกใช้งานสำรองข้อมูลทุกคืนและล้มเหลว
ฉันติดตั้ง rsyslog เพื่อรับข้อมูลเพิ่มเติม และเมื่อ cron รัน crontab ของ root ฉันเห็นรายการต่อไปนี้ในไฟล์ syslog:
CRON[83463]: ล้มเหลวในการตั้งค่าข้อมูลรับรองผู้ใช้
ข้อแตกต่างอย่างหนึ่งระหว่างคอนเทนเนอร์นี้กับคอนเทนเนอร์อื่นๆ คือคอนเทนเนอร์นี้อนุญาตให้ผู้ใช้เข้าสู่ระบบโดยใช้ LDAP มีบรรทัดพิเศษต่อไปนี้ใน Dockerfile:
RUN echo '*;*;*;Al0000-2400;svn' >> /etc/security/group.conf
คัดลอก pam_group /usr/share/pam-configs/groups
RUN echo "ต้องการเซสชัน pam_mhomedir.so skel=/etc/skel umask=077" >> /etc/pam.d/common-session
RUN sed -i 's#\(.*pam_ldap.so.*\)#auth จำเป็น pam_group.so\n\1#' /etc/pam.d/common-auth
RUN sed -i 's#^passwd:.*#passwd: files ldap systemd#;s#^group:.*#group: files ldap systemd#;s#^shadow:.*#shadow: files ldap#' / etc/nsswitch.conf
เดอะ แพม_กรุ๊ป
ไฟล์มีลักษณะดังนี้:
ชื่อ: เปิดใช้งาน /etc/security/group.conf
ค่าเริ่มต้น: ใช่
ลำดับความสำคัญ: 900
ประเภทการตรวจสอบสิทธิ์: การตรวจสอบสิทธิ์หลัก:
ต้องการ pam_group.so
เห็นได้ชัดว่ามีบางอย่างเกี่ยวกับการตั้งค่า LDAP และการพยายามทำให้แน่ใจว่าผู้ใช้ทั้งหมดได้รับการเพิ่มใน svn
กลุ่ม (ซึ่งใช้งานไม่ได้เลย) ทำลายเซสชันผู้ใช้รูทสำหรับ cron
ฉันได้ค้นหาทั่วอินเทอร์เน็ต แต่ไม่พบข้อผิดพลาดเฉพาะนี้ ฉันได้ลองวิธีแก้ปัญหาที่เกี่ยวข้องแล้ว แต่ไม่มีอะไรทำงาน
อัปเดต:
pam.d/common-auth ดูเหมือนว่า:
รับรองความถูกต้อง [success=2 default=ignore] pam_unix.so nullok_secure
จำเป็นต้องมีการตรวจสอบสิทธิ์ pam_group.so
รับรองความถูกต้อง [success=1 default=ignore] pam_ldap.so use_first_pass
# นี่คือทางเลือกหากโมดูลไม่สำเร็จ
การตรวจสอบสิทธิ์ที่จำเป็น pam_deny.so
# ไพรม์สแต็กด้วยค่าส่งคืนที่เป็นบวกหากยังไม่มี
# สิ่งนี้ช่วยป้องกันไม่ให้เราส่งคืนข้อผิดพลาดเพียงเพราะไม่มีรหัสความสำเร็จ
# เนื่องจากโมดูลด้านบนแต่ละโมดูลจะกระโดดไปมา
จำเป็นต้องมีการตรวจสอบสิทธิ์ pam_permit.so
# และนี่คือโมดูลต่อแพ็คเกจเพิ่มเติม (บล็อก "เพิ่มเติม")
รับรองความถูกต้องทางเลือก pam_cap.so
pam.d/cron ดูเหมือนว่า:
@รวมการตรวจสอบสิทธิ์ทั่วไป
# ตั้งค่าแอตทริบิวต์กระบวนการเข้าสู่ระบบ
ต้องการเซสชัน pam_loginuid.so
# อ่านตัวแปรสภาพแวดล้อมจากไฟล์เริ่มต้นของ pam_env /etc/environment
# และ /etc/security/pam_env.conf.
ต้องการเซสชัน pam_env.so
# นอกจากนี้ อ่านข้อมูลตำแหน่งที่ตั้งของระบบ
ต้องการเซสชัน pam_env.so envfile=/etc/default/locale
@รวมบัญชีทั่วไป
@รวมเซสชันทั่วไปที่ไม่โต้ตอบ
# ตั้งค่าขีดจำกัดของผู้ใช้ โปรดกำหนดขีดจำกัดสำหรับงาน cron
# ผ่าน /etc/security/limits.conf
ต้องการเซสชัน pam_limits.so