Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Vòng đời mật khẩu trong /etc/shadow

    Mỗi bản ghi /etc/shadow (rút gọn) gồm lastchg max warn inactive:

    • lastchg: ngày đổi mật khẩu gần nhất (số ngày từ mốc 1970).
    • max: số ngày mật khẩu hiệu lực (mật khẩu hết hạn vào lastchg+max).
    • warn: bắt đầu cảnh báo warn ngày trước khi hết hạn.
    • inactive: sau khi hết hạn, còn inactive ngày ân hạn trước khi tài khoản bị khoá hẳn (khoá vào lastchg+max+inactive).

    Cho today, phân loại trạng thái (xét theo thứ tự ưu tiên):

    • LOCKED: today ≥ lastchg+max+inactive.
    • EXPIRED: lastchg+max ≤ today < lastchg+max+inactive.
    • WARN: lastchg+max-warn ≤ today < lastchg+max.
    • ACTIVE: today < lastchg+max-warn.

    Nếu max = -1: mật khẩu không bao giờ hết hạn → luôn ACTIVE. Nếu inactive = -1: không có giai đoạn khoá (không bao giờ LOCKED).

    Ví dụ: lastchg=100, max=30, warn=7, inactive=5, today=126 → hết hạn ngày 130; 123 ≤ 126 < 130 → WARN.

    • Định dạng đầu vào:

      Một dòng: lastchg max warn inactive today.

    • Ràng buộc đầu vào:

      0 ≤ lastchg,today ≤ 100000; max,inactive có thể -1; 0 ≤ warn ≤ max (khi max≥0).

    • Định dạng đầu ra:

      Một dòng: LOCKED, EXPIRED, WARN hoặc ACTIVE.

    Ví dụ:

    Đầu vào:

    100 30 7 5 126
    

    Đầu ra:

    WARN

    Giải thích:

    Hết hạn ngày 130, cảnh báo từ ngày 123; 126 nằm trong [123,130) → WARN.

    Đang tải editor...