Điểm:0

CRON [83463]: Lỗi đặt thông tin xác thực người dùng

lá cờ us

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
Điểm:1
lá cờ pk

Vấn đề của bạn có thể là người dùng root không có trong LDAP; bạn sẽ cần phải bao gồm pam_unix.so Trong /etc/pam.d/cron bằng cách nào đó.

Ví dụ:

auth [thành công=2 mặc định=bỏ qua] pam_unix.so nullok_secure
@include chung-auth

Giả sử rằng xác thực chung bắt đầu một cái gì đó như thế này:

auth [thành công=1 mặc định=bỏ qua] pam_ldap.so
auth cần thiết pam_deny.so
yêu cầu xác thực pam_permit.so
lá cờ us
Tôi đã thêm thông tin cho câu hỏi. Tôi nghĩ rằng tôi có những gì bạn đề xuất ở chỗ tôi có một dòng pam_unix.so "auth" trước các dòng LDAP, trong một tệp (common-auth) được bao gồm trong tệp pam.d/cron.
András Korn avatar
lá cờ pk
Bit `success=2` là sai. Nó sẽ chuyển đến pam_deny.so. Làm cho nó `success=3`.
lá cờ us
Cảm ơn sự giúp đỡ và tư vấn. Tôi sẽ có một đi vào ngày mai. Vì vậy, tôi có thể tìm hiểu thêm Tôi có một câu hỏi. Ví dụ của bạn cho `"success=2"` và đó cũng là giá trị mặc định. Số biểu thị điều gì và tại sao nó phải là 3?
András Korn avatar
lá cờ pk
Con số này cho PAM biết có bao nhiêu mô-đun tiếp theo trong ngăn xếp này cần bỏ qua nếu kết quả được báo cáo bởi mô-đun này là "thành công". Đó là một `goto` có điều kiện, nếu bạn muốn. Trong cấu hình của bạn, `success=2` khiến `pam_group` và `pam_ldap` bị bỏ qua nếu `pam_unix` thành công. Bạn cũng muốn bỏ qua `pam_deny`, bởi vì đó chỉ là cách bắt tất cả để từ chối mọi thứ. Ý tưởng với các quy tắc `success=X` là bỏ qua `pam_deny` để tới bất kỳ mô-đun tùy chọn nào.
lá cờ us
Cảm ơn.Điều đó thực sự hữu ích.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.