---
title: "Protection domain and ACL"
subject: "Operating System"
chapter: 8
key: "semester_6/operating_system:protection-domain-acl"
source: https://www.bctengineer.com/q/semester_6/operating_system/protection-domain-acl
site: BCT Engineering
---

# Protection domain and ACL

Operating System · Chapter 8: Security

- Asked in: 2069 Bhadra, 5 marks; 2070 Bhadra, 4+4 marks; year not given (asked 2 times)
- Video: [OS  Protection using  ACL](https://www.youtube.com/watch?v=fsisbtgi1cw) — Prof. Saleh Oqeili Lectures
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_6/operating_system/protection-domain-acl
- Whole chapter: https://www.bctengineer.com/md/semester_6/operating_system/chapter-8

## Question

Explain protection domain and access control list (ACL) (domain-object and ACL, and how these mechanisms are implemented for security).

## Short answer

A protection domain is a set of (object, rights) pairs defining what operations a process may perform. The domain-object matrix is implemented via Access Control Lists (ACLs) stored per object listing allowed domains and rights, or capability lists stored per domain. ACLs make it easy to revoke access to an object but slow to find all objects a user can access; UNIX uses simple rwx bits while Windows NTFS uses full ACLs.

## Answer

#### Protection domain
A **protection domain** is a set of (object, rights) pairs. Each pair names an object (file, printer, memory segment) and the operations (read, write, execute) a process running in that domain may perform on it. At any time, a process runs in exactly one domain, but it may switch domains.

In UNIX, a domain is defined by the user ID and group ID (UID, GID). A process started by user X runs in X's domain. The setuid bit lets a process switch to the domain of the file's owner temporarily.

#### Domain-object matrix (protection matrix)
Rows are domains, columns are objects, entries are rights.

| Domain | File1 | File2 | Printer |
|---|---|---|---|
| D1 | Read | Read, Write | – |
| D2 | – | Read | Print |
| D3 | Read, Write, Execute | – | – |

Since the matrix is large and sparse, it is stored by column or by row:

1. **Access Control List (ACL):** storing the matrix by **columns**. Each object has a list of (domain/user, rights).
2. **Capability list:** storing the matrix by **rows**. Each domain/process keeps a list of objects it may access with rights.

#### Access control list (ACL)
Each object carries a list of who may do what.

```text
File1: (Alice: read,write)
       (Bob:   read)
       (Group staff: read)
```

- When a process asks for an operation, the OS searches the object's ACL for a matching entry.
- Easy to find who can access an object, and to revoke an object's rights (edit one list).
- UNIX uses a short ACL: rwx bits for owner, group, others. Windows NTFS has full ACLs.
- Drawback: finding everything one user can access is slow, and the list search takes time on each access.

Thus the domain/object matrix describes the policy, and ACLs (per object) or capabilities (per process) implement it.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What is a protection domain?
   A. A list of users allowed on a network
   B. A list of firewall rules
   C. A set of (object, rights) pairs for a process; a process runs in one domain at a time
   D. A hash of the password file
   Answer: C. A domain says which operations a process may do on which objects. (Key point: Domain)

2. How are ACLs and capability lists obtained from the matrix?
   A. ACL by rows; capability list by columns
   B. Both by rows
   C. Both by columns
   D. ACL by columns (per object); capability list by rows (per domain)
   Answer: D. Columns are objects (who can access it); rows are domains (what it can access). (Key point: Matrix storage)

3. What does the UNIX setuid bit do?
   A. Lets a process temporarily switch to the domain of the file's owner
   B. Prevents the file being read
   C. Makes the file sharable by all
   D. Encrypts the file
   Answer: A. It gives a temporary domain switch, e.g. passwd running as root. (Key point: setuid)

4. What is an ACL good at, and its drawback?
   A. Easy to list a user's objects; hard to revoke
   B. Easy to find who can access an object and to revoke; slow to find everything a user can access
   C. Fast per-access check; huge matrix
   D. Hides the objects from users
   Answer: B. Rights sit with the object, so revoking edits one list, but finding a user's access means scanning all lists. (Key point: ACL strength)

## Related in Operating System

- [Short note: Protection domain](https://www.bctengineer.com/question.md?key=semester_6%2Foperating_system%3Aprotection-domain-note) — Operating System, chapter 8, asked 2×
- [Trap door; firewalls and ACL](https://www.bctengineer.com/question.md?key=semester_6%2Foperating_system%3Atrapdoor-firewall-acl) — Operating System, chapter 8
- [Attack types; security of all components](https://www.bctengineer.com/question.md?key=semester_6%2Foperating_system%3Aattack-types-security-protection-components) — Operating System, chapter 8

## Related in other subjects

- [Media Access Control and significance](https://www.bctengineer.com/question.md?key=semester_7%2Fcomputer_networks_and_security%3Amac-significance) — Computer Networks and Security, chapter 3
- [Concurrency control goals and mechanisms](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Acc-goals-mechanisms) — Distributed System, chapter 8
- [Flow control mechanisms in data communication](https://www.bctengineer.com/question.md?key=semester_8%2Ftelecommunications%3Aflow-control-mechanisms) — Telecommunications, chapter 8
- [Contactor for motor control and protection](https://www.bctengineer.com/question.md?key=semester_6%2Fswitchgear_and_protection%3Acontactor-motor-control-protection) — Switchgear and Protection, chapter 4, asked 3×
