Fact-checked by Grok 2 weeks ago

Discretionary access control

Discretionary access control (DAC) is a fundamental access control policy in computer security systems, where the owner of a resource—such as a file, directory, or device—has the discretion to determine which other users or processes (subjects) can access it and what specific operations they may perform, such as reading, writing, or executing. This model contrasts with more rigid approaches by decentralizing authority to resource owners rather than a central administrator, enabling flexible permission management based on access control lists (ACLs) or capability lists. DAC was formally defined in the U.S. Department of Defense's Trusted Computer System Evaluation Criteria (TCSEC), commonly known as the Orange Book, published in 1985, which established it as a core requirement for systems evaluated at C-level security. In practice, DAC is widely implemented in to enforce user-level . For instance, systems use file permission bits (e.g., owner, group, and others with read/write/execute flags) as a simple form of DAC, allowing file owners to set access rights via commands like [chmod](/page/Chmod). Similarly, Microsoft Windows employs ACLs in the file system, where owners can grant or revoke permissions to specific users or groups through tools like the Security tab in file properties. These mechanisms support , where owners can propagate rights to others, but they also introduce risks like if owners are compromised. Compared to mandatory access control (MAC), DAC offers greater usability and adaptability for non-classified environments but provides less assurance against unauthorized data flows, as it relies on user decisions rather than system-enforced labels like security clearances. MAC, as outlined in TCSEC's B-level criteria, restricts subjects from altering access rules, making it suitable for high-security settings like government systems. While DAC dominates commercial operating systems due to its simplicity, hybrid models combining DAC with MAC or role-based access control (RBAC) are common in enterprise environments to balance flexibility and security. Despite its prevalence, DAC's vulnerabilities to Trojan horses and insider threats have driven ongoing research into more robust variants.

Fundamentals

Definition

Discretionary access control (DAC) is a mechanism that restricts access to objects, such as files or resources, based on the of subjects—typically users or processes—and the groups to which they belong, with permissions explicitly set by the object's owner. In this model, the owner has the authority to determine who can access the object and what operations they may perform, enabling flexible management of resources within a . The core components of DAC include , which are active entities like users or executing processes that initiate access requests; objects, which are passive entities such as files, directories, or devices that hold protected information; and access rights, which specify allowable operations like read, write, execute, or delete. These rights are typically represented through structures like access control lists (ACLs) or capabilities, allowing owners to grant permissions directly. The "discretionary" nature of DAC arises from the owner's ability to freely grant, revoke, or delegate permissions to other subjects without interference from centralized system-wide policies, in contrast to non-discretionary models that enforce fixed rules regardless of owner decisions. This includes mechanisms for permission inheritance or propagation, where a subject with access can pass those rights to others, promoting user-driven sharing while relying on the owner's judgment for security.

Key Principles

Discretionary access control (DAC) operates on the principle of , whereby the creator of an object or a designated owner holds full to determine and modify permissions for that object. This grants the owner the exclusive right to specify who may the object and what operations—such as read, write, or execute—they can perform, ensuring that control remains decentralized and user-driven. In practice, this means the owner can alter permissions at any time without requiring system-wide approval, reflecting the model's emphasis on individual discretion over resources. A core mechanic of DAC is permission propagation, which allows owners to delegate rights to other users or , enabling transitive granting of . For instance, if user A, the owner, grants read to user B, user B may then further grant read to user C, provided the initial includes the ability to propagate permissions. This fosters flexibility in collaborative environments but requires careful management to prevent unintended chains. The process is governed by the owner's initial , ensuring that all propagated rights trace back to the original discretionary decision. The decision process in DAC relies on matching the requesting 's against the object's permission set to determine . When a attempts to perform an on an object, the checks if the 's (or associated group/) appears in the permission list with the requisite right; if it matches, is granted, otherwise denied. This evaluation occurs dynamically for each request, without invoking external policies beyond the owner's specifications. Building on and objects as fundamental entities, this process ensures decisions are localized to the object's attributes. DAC supports varying levels of in permission assignment, allowing owners to apply controls at the level of individual , groups, or roles, all under their discretionary authority. For example, an owner might grant read to a specific , while providing write to an entire group, enabling tailored without rigid hierarchies. This flexibility accommodates diverse organizational needs but maintains owner oversight as the unifying constraint. Unlike models, DAC imposes no system-enforced security labels, such as classification levels, that could override owner decisions. Access rights are determined solely by the owner's choices, free from centralized mandates on sensitivity or clearance, which distinguishes DAC's permissive nature from more restrictive paradigms.

Historical Development

Origins in

The roots of discretionary access control in computing emerged during the with the development of multi-user systems, particularly , a collaborative project involving , , and starting in 1965. In , file protection mechanisms allowed object owners to specify access permissions, marking an early shift toward owner-controlled sharing in environments where multiple users needed to collaborate on resources without centralized administrative oversight. These mechanisms used access control lists (ACLs) attached to segments (files or procedures), where owners could define precise access modes—such as read (r), write (w), or execute (e)—for specific users or groups, enabling flexible yet controlled information sharing while maintaining user isolation. This approach was motivated by the limitations of earlier systems, which enforced rigid, non-collaborative access and lacked support for dynamic multi-user interactions prevalent in academic and research environments of the time. designers sought to balance security with usability, allowing users to share files selectively for productivity in shared computing resources, a necessity as computers transitioned from single-user batch jobs to interactive capable of supporting dozens of simultaneous users. The system's hierarchical structure further empowered directory owners to propagate access controls to contained objects, fostering an ecosystem of discretionary decisions that contrasted sharply with the inflexible hardware-enforced protections of prior systems. A pivotal practical implementation arrived in the 1970s with Unix, developed at by and , building directly on lessons from after Bell Labs withdrew from that project in 1969. Early versions of Unix, such as in 1971, introduced a simplified discretionary permission model using protection bits on files: six bits controlled read, write, and execute access separately for the file owner and for all other users, with files automatically owned by their creator. This owner-centric design allowed users to set permissions via commands like , enabling straightforward sharing in a multi-user setting without the complexity of full ACLs, though group permissions were added in later releases around 1973 to support project-based collaboration. Theoretical underpinnings for these developments were formalized in the influential 1975 paper by Jerome H. Saltzer and Michael D. Schroeder, which analyzed protection mechanisms and advocated for discretionary controls as essential for in complex systems. The authors defined discretionary access as one where the object's creator could alter authorizations, contrasting it with rigid mandatory schemes, and emphasized principles like economy of mechanism and least privilege to make owner-set permissions practical and less error-prone in multi-user contexts. Their work, drawing from experiences, highlighted how discretionary models facilitated intuitive resource management, influencing subsequent operating system designs by prioritizing user autonomy over centralized enforcement.

Evolution and Standards

The formalization of discretionary access control (DAC) began in the mid-1980s with the publication of the , commonly known as , by the U.S. Department of Defense in December 1985. This standard established a framework for evaluating computer system security, defining DAC requirements at the (Discretionary Security Protection) and (Controlled Access Protection) evaluation levels. At , systems must implement owner-discretionary protections to restrict access to objects based on user identity, while extends this with mandatory capabilities to log security-relevant events, ensuring accountability in DAC enforcement. In the 1990s, the National Institute of Standards and Technology (NIST) advanced access control standardization, notably through the development of (RBAC) models, which, although distinct from pure DAC, influenced hybrid approaches by enabling DAC to coexist with role assignments for more scalable user-controlled permissions. NIST's RBAC efforts, formalized in a proposed standard by 2001, demonstrated how RBAC could simulate DAC mechanisms, fostering integrations in enterprise systems. Complementing this, Federal Information Processing Standard (FIPS) 188, issued in September 1994, introduced standardized security labels for information transfer over networks, incorporating permissive and restrictive bit maps that support DAC-like owner-defined access policies by allowing tailored attribute-based restrictions. Internationally, the adoption of ISO/IEC 15408, known as the Common Criteria for Information Technology Security Evaluation, marked a key milestone in the 1990s, providing a harmonized framework across multiple countries for assessing IT security. First published in 1999 and iteratively updated, the standard incorporates DAC as a core security functional requirement in Part 2, evaluating systems for owner-controlled access enforcement within various assurance levels (EAL1 to EAL7). This enables certification of products implementing DAC mechanisms, ensuring interoperability and compliance in global deployments. Post-2000, DAC has adapted to cloud computing environments through hybrid models that blend user-controlled access with attribute- and policy-based enhancements, as outlined in NIST guidelines. For instance, NIST Special Publication 800-146 (2011) highlights DAC integration via standards like XACML for policy specification in infrastructure-as-a-service (IaaS) and platform-as-a-service (PaaS) models, retaining core owner discretion while addressing scalability in distributed systems. Similarly, NIST SP 800-210 (2020) recommends hybrid access control architectures for cloud systems, where DAC principles underpin user-managed permissions alongside mandatory elements for multi-tenant security. These evolutions maintain DAC's flexibility for modern applications like software-as-a-service (SaaS), emphasizing standards-compliant hybrids to balance control and compliance.

Access Control Mechanisms

Access Control Lists

Access control lists () serve as a core mechanism for implementing discretionary by associating permissions directly with protected objects. Each object, such as a or , maintains its own , which is a structured list of access control entries (). Each typically specifies a —often a or group—along with the granted access rights, such as read (r), write (w), or execute (x), and may include optional conditions like time-based restrictions or rules. This per-object approach allows fine-grained control, where the represents a column of the , listing authorized principals and their privileges for that specific object. The creation and management of ACLs are controlled by the object's owner, who holds discretionary authority to add, modify, or remove entries, thereby propagating access rights as needed. Owners can grant permissions using commands that verify their before updating the list, supporting both individual users and groups for . Permissions may propagate to child objects through mechanisms, such as copying ACL entries during object creation or using reference-based defaults that link to a object's ACL without duplication. This owner-driven process ensures that access evolves with the object's lifecycle, though it relies on explicit administrative actions to maintain consistency. To evaluate an request, the system scans the target's sequentially for a matching entry based on the requesting subject's , granting if the entry includes the desired right; otherwise, is denied by default to enforce a principle. This prioritizes explicit allowances, resolving conflicts by the order of entries or predefined rules, such as group precedence over matches. In practice, this evaluation occurs at mediation points, like calls, ensuring every is checked against the current state. A representative implementation is found in ACLs, which extend traditional Unix file modes by allowing multiple user and group entries beyond the basic owner-group-other triad. For instance, an ACL might be expressed in text form as user::rwx, user:[alice](/page/Alice):r-x, group::r--, [mask](/page/Mask)::r-x, other::---, where the mask limits effective permissions for named entries, providing nuanced control while maintaining compatibility with simpler mode bits. This syntax, viewable via tools like getfacl, enables discretionary assignments like granting read access to a specific user without altering broader group rights. Revocation in ACLs requires explicit removal of matching entries by the owner, which is straightforward for targeted changes but poses challenges when subjects are altered, such as a departing an organization, necessitating scans across all relevant objects to avoid lingering access. This can lead to dangling references if not systematically managed, potentially exposing resources to former subjects until cleaned up, and highlights the administrative overhead in large-scale systems where propagation amplifies the scope of updates.

Capability-Based Systems

In capability-based systems, access rights are managed through unforgeable tokens known as , which are held by and reference specific objects while specifying the permitted operations, or rights, on those objects. These tokens combine an object —such as a unique pointer or address—with a set of access rights, like read, write, or execute, ensuring that possession of the capability alone authorizes the action without requiring further identity checks. This subject-side approach contrasts with object-centric models by localizing permissions to the holder, promoting portability and reducing reliance on centralized enforcement. Capabilities are issued by the owner of an object, typically through system primitives that create or allocate the token and add it to the subject's capability list (C-list). For instance, in the foundational model, meta-instructions like "create segment" generate initial capabilities with full ownership rights, while "grant" allows the owner to issue copies to other subjects. Delegation occurs by passing these capabilities, often with attenuation—restricting the rights to a subset of the original (e.g., granting read-only instead of read-write)—to enable controlled sharing without escalating privileges. This process supports the discretionary propagation principle, where subjects decide how to distribute access. Revocation is handled through methods like direct deletion from a recipient's C-list or indirection, where capabilities point to a master list or directory that can be invalidated (e.g., by incrementing a version number or removing the target entry), addressing challenges from widespread propagation without immediate global invalidation. Expiration mechanisms, such as time-bound tokens, further aid revocation in propagated scenarios. These systems excel in distributed environments by enabling fine-grained access without constant queries to a central authority, as capabilities serve as self-contained, context-independent proofs of right that can be transmitted across networks. Uniform naming and dynamic sharing reduce overhead in multiprocessor or networked setups, while inherent unforgeability—enforced via hardware tags or cryptographic seals—enhances security in decentralized delegation chains. Seminal examples include the 1966 model by Dennis and Van Horn, which introduced capabilities as a semantic foundation for multiprogrammed systems using C-lists for protection spheres. Practically, KeyKOS, developed in the 1980s, implemented pure capability-based protection on mainframes, where "keys" as authority tokens allowed domains to invoke objects via messages, supporting persistent, secure sharing in commercial services.

Practical Implementations

In Operating Systems

Discretionary access control (DAC) in operating systems enables resource owners, such as file creators, to specify and manage permissions for users and groups, forming the core mechanism for securing , directories, and processes at the level. This owner-driven model contrasts with centralized by relying on user-configurable rights, typically checked during system operations to prevent unauthorized . In modern OS environments, DAC integrates with systems to support both basic and advanced permission structures, ensuring flexibility while maintaining security boundaries. In operating systems such as , DAC is fundamentally implemented through file permission bits that assign read (r), write (w), and execute (x) rights separately to the file owner, the owner's group, and all other users, conventionally represented in an or symbolic notation like rwxrwxrwx. These permissions allow the owner to discretionarily control who can view, modify, or execute files, with the evaluating the effective user ID of a process against these bits during access attempts. This model, inherited from early Unix designs, provides a simple yet effective DAC framework for local file systems like ext4. Linux extends these basic permissions with access control lists (ACLs) to offer finer-grained control, supporting ACLs on file systems like when mounted with ACL support, and NFSv4 ACLs for networked environments that align more closely with Windows-style permissions by allowing allow/deny rules for specific users or groups. NFSv4 ACLs, for instance, provide richer semantics than traditional modes, enabling inheritance and auditing flags while preserving the discretionary nature of owner-managed access. These extensions maintain with standard permission bits but allow for complex scenarios, such as per-user read access on shared directories. In Windows operating systems, DAC is enforced via the using security descriptors that encapsulate discretionary access control lists (DACLs), which consist of access control entries (ACEs) tied to security identifiers () representing users, groups, or system principals. These descriptors support explicit allow or deny permissions for actions like read, write, or delete, with inheritance rules propagating settings from parent directories to children, allowing owners to manage hierarchically. ensure precise identification in domain environments, making NTFS ACLs a of Windows DAC for both local and networked file . macOS adopts a hybrid DAC approach, building on its Unix heritage with POSIX permission bits for owner, group, and others, augmented by extended ACLs that permit detailed, per-entry controls for multiple users and groups on file systems like APFS and HFS+. These ACLs, managed alongside standard permissions, enable granular rights such as read-only access for specific individuals, enhancing flexibility without overriding owner discretion. Additionally, macOS incorporates quarantine extended attributes, tagging downloaded files with com.apple.quarantine to prompt user verification before execution, thereby integrating discretionary security checks into the file access model. At the level, DAC enforcement occurs during system calls, such as the open() call in Unix/ kernels, where the verifies the process's effective user ID or group ID against the resource's permissions before granting a , denying access if the check fails. This pre-access validation ensures that discretionary rules are upheld transparently across operations like reading or writing files. In Windows, similar checks happen via the security reference monitor during handle creation. The (set user ID) bit in Unix/ systems exemplifies controlled under DAC, allowing an executable to run with the file owner's effective user ID—often —rather than the caller's, enabling tasks like password changes while confining elevated access to the program's scope as defined by the owner. This mechanism balances flexibility with risk, as improper use can lead to vulnerabilities, but it remains a standard DAC feature for administrative utilities. Owners configure DAC permissions using dedicated tools, such as the chmod command in to modify permission bits symbolically (e.g., chmod u+rwx file) or octally (e.g., chmod 755 file), directly altering owner, group, or other rights on files and directories. In Windows, the icacls utility enables similar discretionary changes by granting, revoking, or displaying ACL entries for specified SIDs, such as icacls file.txt /grant Users:RX, supporting and options for efficient management. macOS leverages chmod for both and ACL adjustments, with flags like -N to remove ACLs if needed.

In Network and Database Systems

In network file systems, discretionary access control (DAC) extends owner-defined permissions across distributed environments, allowing file owners to specify access rules that propagate to remote clients. The Network File System version 4 (NFSv4) implements DAC through Access Control Lists (ACLs) and permission bits, where owners set granular read, write, and execute permissions based on user identities, checked during operations like file creation or access. These ACLs are stored on the server and applied consistently across machines, enabling permission propagation without requiring local modifications on clients, though servers may override client-proposed attributes for policy compliance. Similarly, facilitates DAC interoperability between Unix and Windows systems by mapping Windows ACLs to Unix extended attributes, allowing owners to manage permissions via Windows tools while storing them in filesystem xattrs for cross-platform enforcement. In database systems, DAC is enforced through owner-controlled privilege management, where database object owners and revoke to tables, views, and other resources. The SQL standard's and REVOKE statements form the core mechanism, enabling owners to assign privileges such as SELECT, INSERT, , or DELETE to specific users or roles, with the optional WITH OPTION allowing recipients to further delegate those privileges. For instance, an owner might execute GRANT SELECT ON table_name TO user_role; to permit read , or revoke it via REVOKE SELECT ON table_name FROM user_role;, which cascades to remove any delegated privileges. adopts this DAC model, where the object creator becomes the owner and can privileges on tables and views to users or roles, ensuring fine-grained control while integrating with its role-based extensions for broader delegation. In web and cloud environments, DAC manifests through owner-managed sharing mechanisms that allow resource creators to define access for external users or services. (AWS) S3 bucket policies and s enable bucket owners to grant read or write permissions to specific AWS accounts, groups, or the public, providing discretionary control over object access without altering underlying storage. For example, an owner can set an to allow read access to a predefined group while retaining full ownership. employs similar s, where object owners permanently hold OWNER permissions and can assign READER or WRITER scopes to users, groups, or domains, facilitating owner-set sharing links that extend to consumer services like for collaborative file access. Distributed and replicated systems introduce challenges to DAC , particularly in permissions across nodes and mitigating over-sharing risks. In federated environments, maintaining consistent ACLs during replication requires coordinated updates, as systems may diverge, leading to unauthorized access if synchronization fails. Over-sharing arises from decentralized decision-making, where owners' permissive grants in one domain can propagate unintended data exposure in replicated copies, complicating auditing and increasing vulnerability in non-centralized flows. Kerberos tickets incorporate DAC elements in network by embedding user and device claims that inform resource-level authorization decisions. In NFS deployments, Kerberos provides strong via encrypted tickets, after which NFSv4 applies DAC through ACLs to authorize file access based on the authenticated identity, ensuring owner-defined permissions govern operations across the network.

Comparisons with Other Models

Versus Mandatory Access Control

Mandatory access control (MAC) enforces access decisions through centrally defined security policies administered by the system or a trusted authority, utilizing sensitivity labels assigned to both subjects (users or processes) and objects (resources like files), such as hierarchical confidentiality levels including , Secret, Confidential, and Unclassified. Unlike discretionary access control (DAC), MAC prohibits users from delegating or overriding access rights, ensuring that permissions are non-discretionary and rigidly bound by the system's policy to prevent unauthorized . A primary distinction between DAC and MAC lies in policy enforcement and propagation: DAC permits resource owners to grant, revoke, or modify access at their discretion, potentially allowing information to flow freely based on user decisions, whereas strictly prevents such overrides and controls propagation through rules like those in the Bell-LaPadula model, which enforces the simple security property (no read up) to block subjects from accessing higher-classified objects and the *-property (no write down) to inhibit writing to lower-classified objects, thereby safeguarding confidentiality in multilevel environments. The Bell-LaPadula model, introduced in 1973, forms the foundational basis for and is often combined with DAC in multilevel secure systems to provide hybrid protection, where DAC handles user-level sharing within security levels while governs access across levels. DAC finds widespread application in commercial and general-purpose computing environments due to its user-centric flexibility, in contrast to , which is predominantly deployed in military and government high-assurance contexts to protect against leakage. Under the (TCSEC), the evaluation class requires robust DAC mechanisms for controlled access protection, while B-level classes ( through B3) incorporate alongside DAC to enforce labels and , enabling secure sharing across classification boundaries in trusted systems.

Versus

Role-based access control (RBAC) is an model in which permissions are assigned to roles rather than directly to users, and users acquire permissions by being assigned to appropriate roles. In this system, roles represent job functions or organizational positions, such as "manager" or "engineer," and centralized administrators manage role definitions, permission assignments to roles, and user memberships in roles. This approach facilitates inheritance of permissions through role membership, enabling efficient enforcement of policies across large user bases without individual per-user configurations. In contrast to discretionary access control (DAC), which binds permissions directly to user identities or groups at the discretion of resource owners, RBAC abstracts permissions through roles to promote and reduce administrative overhead in enterprise environments. DAC allows owners to grant or revoke access on a per-object basis, often leading to fragmented management, whereas RBAC enforces a structured, role-centric that limits user-level and supports centralized oversight. This abstraction in RBAC makes it less flexible for individualized access decisions but more suitable for consistent application in hierarchical organizations. RBAC emerged as an extension of DAC principles in the early , specifically proposed by and Kuhn in 1992 to address limitations of DAC in commercial and government settings by introducing role-based non-discretionary controls. Building on this, the National Institute of Standards and Technology (NIST) developed a standardized RBAC model in the late and early 2000s, defining core components such as role hierarchies, permission-role assignments, and to unify varying implementations. The NIST model organizes RBAC into hierarchical levels, including basic elements like user-role and role-permission assignments, to provide a scalable for . DAC and RBAC often overlap in practice, as RBAC systems frequently implement role-based permissions using underlying DAC mechanisms, such as lists (s) to enforce role-derived access on resources. For instance, roles may be mapped to groups in an , allowing DAC's flexibility to support RBAC's without requiring entirely new infrastructure. However, DAC retains greater flexibility for ad-hoc sharing scenarios, where owners can directly delegate access outside formal role structures, unlike RBAC's emphasis on predefined roles. DAC is commonly applied in scenarios where individual owners manage access, while RBAC excels in large organizational settings to align permissions with job functions.

Advantages and Limitations

Benefits

Discretionary access control (DAC) provides significant flexibility by allowing resource owners to grant or revoke access permissions on an ad-hoc basis without requiring intervention from system administrators. This owner-centric approach enables users to share resources dynamically, making it particularly suitable for collaborative environments where quick adjustments to access rights are essential for workflow efficiency. For instance, in multi-user systems, individuals can tailor permissions to specific subjects or groups, supporting decentralized decision-making that aligns with diverse administrative policies such as or models. The usability of DAC stems from its intuitive mechanisms, such as access control lists (ACLs) and capabilities, which permit fine-grained control over operations like read, write, or execute without imposing rigid structures on end-users. This reduces administrative overhead in non-sensitive systems, as owners can manage permissions directly, fostering a user-friendly experience that minimizes reliance on centralized authorities. In practice, DAC's explicit identity-based rules and default denial of access enhance manageability, allowing for straightforward policy specification and delegation of privileges. DAC scales effectively for low-assurance scenarios, such as personal or small-team applications, where rapid permission changes support agile resource sharing without complex overhead. Its simplicity in implementation—relative to more stringent models—contributes to cost-effectiveness, as evidenced by its widespread adoption in consumer operating systems like Unix and Windows, which leverage hybrid and capability mechanisms for efficient .

Drawbacks and Security Concerns

Discretionary access control (DAC) is particularly susceptible to attacks, where malicious software masquerades as legitimate programs and exploits the permissions granted by resource owners. In DAC systems, programs execute with the privileges of the invoking , allowing a to access and manipulate data that the user is authorized to handle, potentially leaking sensitive information to unauthorized parties or causing unintended damage. For instance, if a user grants execute permissions to a seemingly benign that contains hidden malicious code, the can read confidential files and propagate their contents to locations accessible only to the , evading direct detection since actions appear attributable to the legitimate . Another significant risk in DAC arises from permission propagation, where access rights can cascade unintentionally through or data copying, leading to broader exposure than intended by the original owner. Read access in DAC is inherently transitive; for example, if User A grants User B read to a file, User B can copy its contents into a new object and share that copy with User C without notifying or requiring approval from User A, effectively propagating sensitive beyond the initial grant. This lack of over exacerbates risks in collaborative environments, as chained delegations can create complex webs of access that owners cannot easily revoke or monitor, potentially resulting in widespread data dissemination. Auditing DAC implementations presents substantial challenges due to their decentralized nature, where access decisions are distributed among individual resource owners rather than enforced by a centralized . Without a system-wide dictating flows, tracking the full scope of permissions, delegations, and movements becomes labor-intensive and error-prone, as logs must aggregate disparate owner-managed controls across the . This fragmentation hinders comprehensive verification and incident response, as auditors cannot readily reconstruct access histories or detect anomalies in permission grants, contrasting with more structured models that facilitate centralized oversight. DAC's reliance on user discretion renders it inadequate for environments demanding high-assurance , such as those evaluated under the (TCSEC) at the B3 level, which mandates () to prevent user overrides and ensure policy enforcement without exceptions. In TCSEC B3 systems, discretionary mechanisms alone fail to meet requirements for verified protection against unauthorized information flows, as they permit owners to circumvent labels through ad hoc grants, undermining the and mediation essential for classified or critical operations. In modern , DAC's flexibility contributes to over-sharing vulnerabilities, exemplified by numerous breaches from misconfigured storage buckets where owners inadvertently expose data publicly. buckets, which employ DAC-like lists (ACLs) and policies set by bucket owners, have been central to incidents such as the 2019 exposure of over 60,000 patient records due to improper permission settings, highlighting how user-driven configurations can lead to massive data leaks when not rigorously managed. These cases underscore the ongoing risks in scalable cloud environments, where the ease of granting broad access amplifies the potential impact of configuration errors.

References

  1. [1]
    discretionary access control (DAC) - Glossary | CSRC
    Definitions: An access control policy that is enforced over all subjects and objects in an information system where the policy specifies that a subject that has ...
  2. [2]
    Discretionary Access Control - Cornell: Computer Science
    Some access control systems permit subjects other than the owner to delegate their rights to an object to another subject. For example, Alice might delegate her ...
  3. [3]
    Operating System Access Control - CS@Purdue
    Most of today's operating systems use Discretionary Access Control (DAC) as their primary access control mechanism. ... For example, MAC labels for files ...
  4. [4]
    mandatory access control (MAC) - Glossary | CSRC
    Mandatory access control is considered a type of nondiscretionary access control.
  5. [5]
    [PDF] Trusted Computer System Evaluation Criteria ["Orange Book"]
    Oct 8, 1998 · The discretionary access control mechanism shall, either by explicit user action or by default, provide that objects are protected from.
  6. [6]
    [PDF] Access Control Models - Jackson State University
    Access control models include Discretionary (DAC), Mandatory (MAC), Dynamic (Chinese Wall), and Role-based (RBAC). DAC allows owners to grant access, while MAC ...
  7. [7]
    [PDF] DAC vs. MAC - Stanford Secure Computer Systems Group
    C – discretionary access control. - B – mandatory access control. - A – like B, but better verified design. - Classes within divisions increasing level of ...
  8. [8]
    NCSC-TG-003 A GUIDE TO UNDERSTANDING DISCRETIONARY ...
    Sep 30, 1987 · Saltzer, Jerome H. and Schroeder, Michael D., ``The Protection of Information in Computer Systems,'' Proceedings of the IEEE, Vol. 63, No. 9 ...
  9. [9]
    Basic Principles Of Information Protection
    ### Summary of Access Control, Subjects, Objects, and Discretionary Protection from https://web.mit.edu/Saltzer/www/publications/protection/Basic.html
  10. [10]
    Descriptor-Based Protection Systems
    ### Summary of Access Control Lists, Capabilities, and Discretionary Access Control
  11. [11]
    [PDF] Discretionary Access Control - CS@Cornell
    Sep 14, 2013 · In discretionary access control (DAC), the owner and principals with authority traced back to the owner control the assignment and propagation ...Missing: seminal | Show results with:seminal
  12. [12]
    [PDF] Protection and the Control of Information Sharing in Multics
    The key mechanisms described include access control lists, hierarchical control of access specifications, identification and authentication of users, and ...
  13. [13]
    [PDF] The UNIX Time- Sharing System
    This paper discusses the nature and implementation of the file system and of the user command interface. Key Words and Phrases: time-sharing, operating system, ...
  14. [14]
    The Protection of Information in Computer Systems - MIT
    This tutorial paper explores the mechanics of protecting computer-stored information from unauthorized use or modification.
  15. [15]
    [PDF] Role-Based Access Control Models
    Although RBAC is policy neutral, it directly supports three well-known security principles: least privilege, separation of duties, and data abstraction. Least ...
  16. [16]
    [PDF] Proposed NIST Standard for Role-Based Access Control
    The proposed NIST standard aims to unify RBAC ideas, as no single definition exists, and to serve as a foundation for product development.
  17. [17]
    [PDF] FIPS 188, Standard Security Label for Information Transfer
    Oct 19, 2015 · Information Transfer security labels convey information used by protocol entities to determine how to handle data communicated between open ...Missing: escrow cryptography
  18. [18]
    [PDF] CC2022PART1R1.pdf - Common Criteria
    Security techniques — Guidance for developing security and privacy functional requirements based on ISO/IEC 15408.
  19. [19]
    [PDF] CC2022PART2R1.pdf - Common Criteria
    exclusive permission to ISO/IEC to reproduce CC:2022 in the revised editions of ISO/IEC 15408 ... discretionary access control. DRBG deterministic random ...
  20. [20]
    [PDF] CC2022PART3R1.pdf - Common Criteria
    exclusive permission to ISO/IEC to reproduce CC:2022 in the revised editions of ISO/IEC 15408 ... Discretionary Access Control (DAC) mechanism, a very ...<|separator|>
  21. [21]
    [PDF] General Access Control Guidance for Cloud Systems
    This document provides general access control guidance for cloud systems, including IaaS, PaaS, and SaaS service models.Missing: discretionary ISO 2000
  22. [22]
    [PDF] NIST SP 800-146, DRAFT Cloud Computing Synopsis and ...
    A number of policy specification techniques (e.g., discretionary access control using standards such as XACML [Mos05], role-based access control [Fer92],.
  23. [23]
    The Protection of Information in Computer Systems
    ### Summary of Access Control Lists (ACLs) in Discretionary Access Control
  24. [24]
    POSIX Access Control Lists on Linux - USENIX
    This paper discusses file system Access Control Lists as implemented in several UNIX-like operating systems.Missing: syntax | Show results with:syntax
  25. [25]
    [PDF] Capability-Based Computer Systems - Bitsavers.org
    The concept of capability is formally defined in the 1966 paper by Dennis and Van Horn [Dennis 66]. Chapter 3 exam- ines this paper in some detail. The ...
  26. [26]
    KeyKOS architecture | ACM SIGOPS Operating Systems Review
    article. Free access. Share on. KeyKOS architecture. Author: Norman Hardy. Norman ... Levy, Capability Based Computer Systems, Digital Press, 1984. Digital ...Missing: paper | Show results with:paper
  27. [27]
    Linux file permissions explained - Red Hat
    Jan 10, 2023 · "Others" permissions are applied when the account interacting with the file is neither the user owner nor in the group that owns the files. Or, ...Missing: V1 | Show results with:V1
  28. [28]
    Chapter 10. Access Control Lists | Red Hat Enterprise Linux | 5
    The Red Hat Enterprise Linux 5 kernel provides ACL support for the ext3 file system and NFS-exported file systems. ACLs are also recognized on ext3 file systems ...
  29. [29]
    nfs4_acl(5) - Linux manual page - man7.org
    NFSv4 ACLs provide finer granularity than typical POSIX read/write/execute permissions and are similar to CIFS ACLs.Missing: ext4 DAC<|separator|>
  30. [30]
    File permissions and attributes - ArchWiki
    File systems use permissions and attributes to regulate the level of interaction that system processes can have with files and directories.Text method · Text method shortcuts · Copying permissionsMissing: discretionary | Show results with:discretionary<|separator|>
  31. [31]
    Security Descriptors in File Systems - Windows drivers
    Sep 6, 2024 · NTFS is efficient in its storage of security descriptors ... This module describes how to control access to files and folders using permissions.Missing: ACLs DAC
  32. [32]
    Understanding Windows File And Registry Permissions
    Sep 10, 2019 · Windows uses Access Control Lists (ACLs) and security descriptors to manage permissions on files and registry keys, checking rights before ...
  33. [33]
    [PDF] Apple Platform Security
    This documentation provides details about how security technology and features are implemented within Apple platforms. It also helps organizations combine Apple ...
  34. [34]
    Understanding Permissions - Apple Developer
    Jan 28, 2013 · macOS supports both the standard UNIX user-group-other permissions model (supplemented by BSD file flags) and POSIX access control lists (ACLs).Missing: quarantine | Show results with:quarantine
  35. [35]
    7.3 About Discretionary and Mandatory Access Control Policies
    The kernel checks and enforces DAC policy rules before MAC rules, so it does not check SELinux policy rules if DAC rules have already denied access to a ...
  36. [36]
    [PDF] Access Control
    Each process has three uids. • ruid : real user id -> who starts the process. • euid : effective user id -> used for access control. • suid : saved user id -> ...
  37. [37]
    icacls | Microsoft Learn
    Jun 9, 2025 · Displays or modifies discretionary access control lists (DACLs) on specified files and applies stored DACLs to files in specified directories.
  38. [38]
    RFC 7862 - Network File System (NFS) Version 4 Minor Version 2 ...
    Labeled NFS Access control models such as UNIX permissions or Access Control Lists (ACLs) are commonly referred to as Discretionary Access Control (DAC) models.
  39. [39]
    Setting up a Share Using Windows ACLs - SambaWiki
    Jun 26, 2024 · To set up a share with Windows ACLs, ensure Samba has ACL support, create the share, and set permissions using Windows utilities, not smb.conf.Missing: discretionary interoperability
  40. [40]
    Discretionary Access Control Based on Granting and Revoking ...
    Mar 27, 2017 · The typical method of enforcing discretionary access control in a database system is based on the granting and revoking of privileges.
  41. [41]
    Access control lists (ACLs)  |  Cloud Storage  |  Google Cloud
    ### Summary of Google Cloud Storage ACLs for Owner-Set Sharing
  42. [42]
    A survey on access control techniques for cloud, blockchain, IoT and ...
    Under a DAC system, keeping track of the data is challenging since it is not a centralized system, only allowing administrators to monitor each ACL's local flow ...
  43. [43]
    Dynamic Access Control Overview | Microsoft Learn
    Feb 13, 2024 · Domain controllers are able to issue and respond to Kerberos tickets with compound authentication-related information. When a domain is ...
  44. [44]
    NFS/Kerberos - ArchWiki
    Mar 23, 2024 · Kerberos is one of the few security mechanisms available for NFS. It provides strong per-user authentication, strong data encryption, and (with NFSv4) removes ...
  45. [45]
    [PDF] Secure Computer Systems: Mathematical Foundations - DTIC
    Elliott Bell and Leonard J. LaPadula of che MITRE Corporation. Th:.s report represents an initial attwpt at specifying require- ments for a secure %.)mputer ...
  46. [46]
    [PDF] Role-Based Access Controls
    Oct 13, 1992 · The TCSEC specifies two types of access controls: Discretionary Access Controls (DAC) and Mandatory Access Controls (MAC).
  47. [47]
    The NIST Model for Role-Based Access Control: Towards a Unified ...
    Jul 26, 2000 · This paper describes a unified model for role-based access control (RBAC). RBAC is a proven technology for large-scale authorization.
  48. [48]
    What is Role-Based Access Control | RBAC vs ACL & ABAC - Imperva
    An access control list (ACL) is a table listing the permissions attached to computing resources. It tells the operating system which users can access an object, ...
  49. [49]
    [PDF] Principles and Practice 1 Access Control and Other Security Services
    The purpose of access control is to limit the actions or operations that a legitimate user of a computer system can perform. Access control constrains what ...Missing: key | Show results with:key<|control11|><|separator|>
  50. [50]
    [PDF] A Survey of Access Control Policies
    Apr 16, 2011 · This paper reviews the three main types of access control policies: discretionary, mandatory, and role-based. It then describes how Windows and ...
  51. [51]
    [PDF] Access Control - UTC
    Is RBAC a discretionary or mandatory access control? – RBAC is policy neutral; however individual RBAC configurations can support a mandatory policy, while ...
  52. [52]
    [PDF] Verification and Test Methods for Access Control Policies/Models
    Typically, discretionary AC policies are associated with identity-based AC, and non-discretionary ACs are associated with rule-based controls (for example, ...<|control11|><|separator|>
  53. [53]
    Trojan horse resistant discretionary access control
    Index Terms. Trojan horse resistant discretionary access control. Security and ... It is, however, vulnerable to Trojan Horse attacks and attacks exploiting buggy ...
  54. [54]
    [PDF] Threats In Healthcare Cloud Computing | HHS.gov
    Feb 4, 2021 · Examples of Notable Cloud Vulnerabilities​​ Researchers discovered a misconfigured Amazon S3 storage bucket, leaking over 60,000 patient records ...