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] Liệt kê tất cả nhóm của người dùng

    Lệnh groups <user> liệt kê mọi nhóm mà user thuộc về: nhóm chính (từ GID trong /etc/passwd) cùng các nhóm phụ (mọi dòng /etc/group có tên user trong danh sách thành viên).

    Cho /etc/passwd và /etc/group, hãy in danh sách tên nhóm mà user chỉ định thuộc về, không trùng lặp, sắp tăng dần theo bảng chữ cái, cách nhau bởi dấu cách trên một dòng.

    Ví dụ: alice (nhóm chính alice) là thành viên phụ của sudo, dev → alice dev sudo.

    • Đị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,...). Dòng cuối: tên user.

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

      1 ≤ P,G ≤ 1000. User được bảo đảm tồn tại và GID nhóm chính khớp một nhóm.

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

      Một dòng: các tên nhóm sắp tăng dần, cách nhau bởi dấu cách.

    Ví dụ:

    Đầu vào:

    1
    alice:x:1000:1000:Alice:/home/alice:/bin/bash
    3
    alice:x:1000:
    sudo:x:27:alice,bob
    dev:x:1500:alice
    alice
    

    Đầu ra:

    alice dev sudo

    Giải thích:

    Nhóm chính alice + nhóm phụ sudo, dev → sắp xếp: alice dev sudo.

    Đang tải editor...