ThisCalculator

Everyday

Access Control Lists: How ACL Rules Set Permissions

Updated · Standard formula, shown below

Average pace 6.00 min/km
Average speed
10.00 km/h
Result
Time (min)
30 min
You entered
Distance (km)
5 km
You entered

Access Control Lists: How ACL Rules Set Permissions

Access control lists (ACLs) are a list of rules attached to a resource (like a file, folder, or network interface) that explicitly defines which users or groups can access it and what actions they can perform. Each rule in the ACL specifies a subject (who), an object (what resource), and a permission (what action is allowed or denied). When a request is made, the system checks the ACL rules in order and applies the first matching rule to grant or block access.

Formula

The calculator computes average pace and speed from time and distance. The formulas are:

  • Pace (min/km) = Time (minutes) ÷ Distance (km)
  • Speed (km/h) = Distance (km) ÷ (Time (minutes) ÷ 60)

Variables: t = total time in minutes, d = distance in kilometers. Pace is expressed as minutes per kilometer (the time it takes to cover one kilometer), and speed is kilometers per hour.

Worked Example

Using the default values: time = 30 minutes, distance = 5 km.

  1. Pace = 30 ÷ 5 = 6.00 min/km
  2. Speed = 5 ÷ (30 ÷ 60) = 5 ÷ 0.5 = 10.00 km/h

So a 30-minute run over 5 km gives an average pace of 6 minutes per kilometer and an average speed of 10 km/h.

What Is an Access Control List?

An access control list is a data structure that tells an operating system, network device, or application which users or processes are allowed to access specific resources and what operations they can perform. ACLs are a fundamental part of authorization in computing—they define who can do what after a user has been authenticated (proven who they are).

ACLs appear in many contexts: file systems (like Linux permissions or Windows NTFS), network routers and firewalls (to filter traffic), databases (row-level security), and cloud storage (bucket policies). The term “access control list� is generic, but the underlying concept is the same: a set of ordered rules that grant or deny permissions.

How ACL Rules Work

Each ACL entry (also called an Access Control Entry, or ACE) contains three core elements:

  • Subject: a user, group, or process (e.g., user “aliceâ€� or group “developersâ€�).
  • Object: the resource being protected (e.g., a file, a folder, a network port).
  • Permission: the action allowed or denied (e.g., read, write, execute, delete).

When a request is made, the system evaluates the ACL in a specific order. In most implementations, rules are checked from top to bottom, and the first matching rule determines the outcome. This is known as “first match wins.� For example, if a file has an ACL that first denies “guests� write access, then allows “users� write access, a guest user will be denied even if they are also in the “users� group—because the deny rule appears first.

Some systems use a different evaluation model. For instance, Windows NTFS combines allow and deny permissions and resolves conflicts by giving deny precedence. In contrast, many network ACLs (like those on Cisco routers) use an implicit deny at the end: if no rule matches, the packet is dropped.

Types of ACLs: Discretionary vs. System

ACLs are often divided into two main types:

  • Discretionary ACL (DACL): Controlled by the owner of the resource. The owner decides which users or groups get access. This is the most common type in file systems.
  • System ACL (SACL): Used for auditing—it specifies which access attempts should be logged, not whether access is granted. Administrators use SACLs to track who tried to read or modify a resource.

In networking, ACLs are typically called “standard� (filter by source IP only) or “extended� (filter by source/destination IP, port, and protocol). These are not the same as file system ACLs but follow the same rule-based logic.

How to Set ACL Rules (Examples)

Setting ACL rules varies by system, but the general steps are similar. Here are three common examples:

  • Linux file permissions: Use setfacl to add or modify ACL entries. For example, setfacl -m u:alice:rw /data/report.txt gives user alice read and write access to the file.
  • Windows NTFS: Right-click a file or folder, select “Propertiesâ€� → “Securityâ€� → “Editâ€� to add or change user permissions. You can set “Allowâ€� or “Denyâ€� for each permission type.
  • Network router ACL: On Cisco IOS, you might enter global configuration mode and type access-list 100 permit tcp any host 192.168.1.10 eq 80 to allow HTTP traffic to a specific server.

Always test ACL changes in a non-production environment first, because a misconfigured rule can lock out legitimate users or expose sensitive data.

Common Mistakes and Pitfalls

ACL misconfiguration is a frequent cause of security breaches and system outages. Here are the most common mistakes:

  • Order matters: Placing a broad deny rule before a specific allow rule will block access for everyone, even those who should be allowed. Always put specific rules first.
  • Implicit deny: Many systems deny by default if no rule matches. Forgetting to add an explicit allow rule results in access being blocked.
  • Group membership confusion: A user can belong to multiple groups. If any group has a deny rule that matches, the user may be denied even if another group allows access. Understand how your system resolves conflicts.
  • Not testing: ACL changes should be tested with different user accounts to verify both allowed and denied access.

ACL vs. Other Access Control Models

ACLs are not the only way to manage permissions. Two other common models are Role-Based Access Control (RBAC) and Attribute-Based Access Control (ABAC).

  • RBAC: Permissions are assigned to roles (e.g., “managerâ€�), and users are assigned to roles. This is simpler to manage than individual ACLs for large organizations.
  • ABAC: Access is based on attributes (e.g., time of day, user location, resource classification). ABAC is more flexible but more complex to implement.

ACLs are best for small, specific resources where you need fine-grained control. For large systems, RBAC or ABAC often reduce administrative overhead.

Security and Performance Considerations

ACLs are a critical security control, but they must be maintained carefully. Overly permissive ACLs can lead to data leaks, while overly restrictive ones can hinder productivity. Regularly audit your ACLs to ensure they still reflect current roles and needs.

Performance can also be affected. In network devices, a long ACL with hundreds of rules can increase latency because each packet must be checked against the list. Optimize by placing more specific and frequently matched rules near the top.

Frequently Asked Questions

What is the difference between an ACL and a permission?

A permission is a single right (like “read� or “write�), while an ACL is a collection of rules that combine subjects, objects, and permissions. The ACL is the mechanism that stores and evaluates these rules.

Can ACL rules be overridden?

Yes, depending on the system. In Windows, deny entries generally override allow entries. In Linux, the owner can change the ACL unless the file system is mounted with special restrictions. In network ACLs, the first matching rule wins, so a later rule cannot override an earlier one.

What happens if no ACL rule matches?

Most systems have an implicit deny—access is denied. This is a safety default to prevent accidental access. However, some systems may allow access if no rule exists, so always check the documentation.

How do I view the ACL of a file in Linux?

Use the getfacl command. It shows the ACL entries for a file or directory, including the owner, group, and any additional users or groups.

Are ACLs the same as firewall rules?

Not exactly. Firewall rules are a type of ACL applied to network traffic, but ACLs also apply to files, folders, and other resources. The concept is similar, but the context differs.

Related

Formula used
in t | Time (min) | min | 30 | 0
in d | Distance (km) | km | 5 | 0
out pace | Average pace | min/km | t / d | 2
out speed | Average speed | km/h | d / (t / 60) | 2

Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.