Tôi có một số bộ chứa docker, tất cả đều được thiết lập gần như giống hệt nhau, sử dụng thành công cron để chạy các công việc sao lưu hàng đêm.
Tôi có một vùng chứa khác, được thiết lập gần như giống hệt nhau, thử và không thành công khi sử dụng cron để chạy công việc sao lưu hàng đêm.
Tôi đã cài đặt rsyslog để biết thêm thông tin và khi cron chạy crontab của root, tôi thấy mục sau trong tệp nhật ký hệ thống:
CRON [83463]: Lỗi đặt thông tin xác thực người dùng
Một điểm khác biệt giữa vùng chứa này và tất cả các vùng chứa khác là vùng chứa này cho phép người dùng đăng nhập bằng LDAP. Nó có các dòng bổ sung sau trong Dockerfile:
CHẠY echo '*;*;*;Al0000-2400;svn' >> /etc/security/group.conf
SAO CHÉP pam_group /usr/share/pam-configs/groups
CHẠY echo "yêu cầu phiên 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: files ldap systemd#;s#^group:.*#group: files ldap systemd#;s#^shadow:.*#shadow: files ldap#' / v.v./nsswitch.conf
Các pam_group
tập tin trông giống như:
Tên: kích hoạt /etc/security/group.conf
Mặc định: có
Ưu tiên: 900
Loại xác thực: Xác thực chính:
bắt buộc pam_group.so
Rõ ràng, có điều gì đó về việc thiết lập LDAP và cố gắng đảm bảo rằng tất cả người dùng được thêm vào svn
group (hoàn toàn không hoạt động) đã phá vỡ phiên người dùng gốc cho cron.
Tôi đã tìm kiếm trên internet, nhưng không tìm thấy lỗi cụ thể này. Tôi đã thử các giải pháp liên quan, nhưng không có gì hiệu quả.
CẬP NHẬT:
pam.d/common-auth trông giống như:
auth [thành công=2 mặc định=bỏ qua] pam_unix.so nullok_secure
yêu cầu xác thực pam_group.so
auth [success=1 default=ignore] pam_ldap.so use_first_pass
# đây là dự phòng nếu không có mô-đun nào thành công
auth cần thiết pam_deny.so
# ưu tiên ngăn xếp với giá trị trả về dương nếu chưa có giá trị nào;
# điều này tránh cho chúng tôi trả lại lỗi chỉ vì không có gì đặt mã thành công
# vì mỗi mô-đun ở trên sẽ chỉ nhảy xung quanh
yêu cầu xác thực pam_permit.so
# và đây là nhiều mô-đun theo gói hơn (khối "Bổ sung")
auth tùy chọn pam_cap.so
pam.d/cron trông giống như:
@include chung-auth
# Đặt thuộc tính quy trình loginuid
phiên bắt buộc pam_loginuid.so
# Đọc các biến môi trường từ các tệp mặc định của pam_env, /etc/environment
# và /etc/security/pam_env.conf.
phiên bắt buộc pam_env.so
# Ngoài ra, hãy đọc thông tin ngôn ngữ hệ thống
phiên yêu cầu pam_env.so envfile=/etc/default/locale
@include tài khoản chung
@include chung-session-noninteractive
# Thiết lập giới hạn người dùng, vui lòng xác định giới hạn cho các tác vụ định kỳ
# đến /etc/security/limits.conf
phiên bắt buộc pam_limits.so