Nó có thể phụ thuộc vào cài đặt trong Active Directory - nó được đặt trong Chính sách nhóm, trong: Đăng nhập tương tác: Nhắc người dùng thay đổi mật khẩu trước khi hết hạn.
Vì vậy, hãy kiểm tra với quản trị viên AD. Có thể áp dụng chính sách này cho các đơn vị tổ chức, vì vậy nếu tài khoản của bạn nằm trong một đơn vị tổ chức cụ thể, bạn có thể đặt cảnh báo dài hơn ở đó. Của nó kỹ thuật có thể, ít nhất. Có thể có những hạn chế hoạt động.
Ngoài ra, máy có được kết nối thông qua sssd
? Rất đáng để đọc bài viết này để xem có điều gì đó trong sssd.conf
điều đó có thể ghi đè giá trị được gửi từ AD. Nếu nó không được đặt trong sssd.conf
ở tất cả, nó sẽ chỉ kế thừa những gì AD đang gửi. https://access.redhat.com/articles/3027531
Nếu quản trị viên miền nói rằng nó được đặt thành 7 ngày và sẽ không thay đổi, thì không rõ liệu bạn có thể định cấu hình hay không sssd.conf
để cung cấp khoảng thời gian cảnh báo dài hơn - tôi nghi ngờ rằng nó có thể ghi đè lên AD theo cách đó.
Ngoài ra, bạn có thể thực hiện truy vấn LDAP trên tài khoản người dùng AD và lấy thuộc tính có tên msDS-UserPasswordExpiryTimeComputed
- giá trị có tick qua ngày kỷ nguyên Windows.
Để tính ngày trên hệ thống Linux, ngày của kỷ nguyên Windows là 1601-01-01T00:00:00Z, tức là 11644473600 giây trước kỷ nguyên *nix (1970-01-01T00:00:00Z). Các dấu tích của Windows tính bằng 100 nano giây. Vì vậy, để tính toán đơn giản:
$tickInterval = 10000000
$unixEpochDiff = 11644473600
# khoảng thời gian được chụp từ msDS-UserPasswordExpiryTimeComputed
$ADPasswordExpiryTime = 132985454614249065
$unixTime = ($userPasswordExpiryTime / $tickInterval) - $unixEpochDiff
Hiện tại, tôi không có cách nào để kiểm tra truy vấn LDAP từ hệ thống dựa trên Linux sang AD, nhưng có thể đáng để thử nếu không có cách nào khác hữu ích.