Maintain an access matrix (domains × objects; rights are single letters, o = owner).
Commands:
create D O— domain D creates object O and gets rights o, r, w. PrintD creates O (owner).grant BY TO O rights— only a domain withoon O may grant: printBY grants rights on O to TO, orDENIED: BY is not owner of O.revoke BY FROM O rights— same ownership rule:BY revokes rights on O from FROM.check D O r— printcheck D r O: ALLOWEDorDENIED.
At the end print Capability lists: with one line per domain (alphabetical) bob -> data:orw, report:r (objects alphabetical, rights sorted, empty cells omitted, none if empty), then Access control lists: with one line per object (alphabetical) report -> alice:orw, bob:r.