Trong kiểm soát truy cập, cùng một tập quyền có thể biểu diễn theo hai chiều:
(chủ thể, quyền) được cấp trên nó.(đối tượng, quyền) mà nó được cấp.Đây là hai cách nhìn của cùng một ma trận kiểm soát truy cập (theo hàng hay theo cột). Cho hệ thống ACL, hãy chuyển đổi sang Capability List.
Quyền (perm) là một chuỗi không rỗng gồm các ký tự phân biệt lấy từ {r, w, x} theo đúng thứ tự đó (ví dụ: r, w, rw, rx, rwx), và mỗi chủ thể chỉ xuất hiện tối đa một lần trong ACL của một đối tượng.
Ví dụ
Input:
2
File1 2
Alice rw
Bob x
File2 1
Alice r
Output:
2
Alice: File1:rw,File2:r
Bob: File1:x
Dòng 1: số nguyên m — số đối tượng có trong ACL (0≤m≤100).
Với mỗi đối tượng: một dòng objectName k (0≤k≤50) rồi k dòng tiếp theo dạng subject perm.
Dòng đầu tiên: số lượng chủ thể phân biệt xuất hiện trong toàn bộ ACL.
Sau đó, với mỗi chủ thể (sắp xếp tăng dần theo thứ tự từ điển ASCII của tên — chữ hoa đứng trước chữ thường), in một dòng dạng:
subjectName: obj1:perm1,obj2:perm2,...
trong đó danh sách đối tượng của chủ thể được sắp xếp tăng dần theo tên đối tượng (ASCII), phân cách bằng dấu phẩy, không có khoảng trắng thừa. Nếu m = 0 hoặc không có chủ thể nào, chỉ in dòng 0.
Ví dụ:
Đầu vào:
2
File1 2
Alice rw
Bob x
File2 1
Alice r
Đầu ra:
2
Alice: File1:rw,File2:r
Bob: File1:x
Đầu vào:
0
Đầu ra:
0
Đang tải editor...