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] Kiểm tra toàn vẹn passwd và group

    Kiểm tra tính toàn vẹn của cặp /etc/passwd và /etc/group, phát hiện ba loại lỗi:

    1. DUP_UID: hai user trở lên dùng cùng một UID.
    2. ORPHAN_GID: một user có GID nhóm chính không tồn tại trong /etc/group.
    3. GHOST_MEMBER: một tên xuất hiện trong danh sách thành viên phụ của một nhóm nhưng không là user nào trong /etc/passwd.

    In các mã lỗi tìm thấy theo thứ tự cố định DUP_UID, ORPHAN_GID, GHOST_MEMBER; với mỗi loại, in <MÃ> <các giá trị vi phạm> trong đó các giá trị sắp tăng dần (UID/GID dạng số tăng dần, tên dạng chữ cái), cách nhau bởi dấu cách. Chỉ in các loại lỗi có vi phạm. Nếu không có lỗi nào, in CLEAN.

    Ví dụ: hai user cùng UID 1000 → DUP_UID 1000.

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

      Dòng 1: số P rồi P dòng /etc/passwd (tên:x:UID:GID:...). Dòng tiếp: số G rồi G dòng /etc/group (tên:x:GID:thanhvien).

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

      1 ≤ P,G ≤ 1000.

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

      Các dòng mã lỗi theo thứ tự, hoặc CLEAN.

    Ví dụ:

    Đầu vào:

    2
    alice:x:1000:1000:
    bob:x:1000:1000:
    1
    staff:x:1000:
    

    Đầu ra:

    DUP_UID 1000

    Giải thích:

    alice và bob cùng UID 1000 → DUP_UID 1000; GID 1000 có nhóm, không lỗi khác.

    Đang tải editor...