Fact-checked by Grok 2 weeks ago

File-system permissions

File-system permissions are access control mechanisms in operating systems that regulate the operations—such as reading, writing, or executing—users or processes can perform on files and directories within a file system, ensuring data security and integrity by restricting unauthorized access. These permissions form a core component of the operating system's security model, applying to all file-like objects including devices and sockets, and are enforced at the kernel level to prevent abuse or unintended modifications. In systems adhering to the standard, permissions are traditionally structured around three categories—owner (user), group, and others—each with three possible rights: read (r), write (w), and execute (x), often represented in symbolic notation (e.g., rw-r--r--) or values (e.g., 644). Ownership is managed via user ID () and group ID (GID) attributes on each file, with commands like [chmod](/page/Chmod) for altering permissions and [chown](/page/Chown) for changing ownership, while directory permissions differ slightly: read allows listing contents, write enables creation or deletion, and execute permits traversal. This model, originating from early Unix implementations, provides a simple yet effective (DAC) framework but can be extended with access control lists (ACLs) for finer-grained control in modern file systems like or NFS. In contrast, Windows file systems such as employ a more flexible model based on descriptors containing lists (DACLs) and system lists (SACLs), where permissions are defined through entries (ACEs) specifying rights like read, write, delete, or full control for individual users, groups, or principals. These descriptors support inheritance from parent directories, allowing permissions to propagate to child objects unless explicitly blocked, and are managed via APIs like SetNamedSecurityInfo or tools such as icacls, integrating with for domain-wide enforcement. Both and Windows approaches underscore the role of file-system permissions in mitigating risks like , though misconfigurations remain a common vulnerability in multi-user environments.

Core Concepts

Definition and Purpose

File-system permissions are mechanisms in operating systems that govern access to files and directories, specifying which entities are authorized to interact with resources to ensure controlled usage in multi-user environments. These permissions originated in early multi-user systems during the 1970s, particularly with the development of Unix at , which drew inspiration from the more complex access controls in the operating system to enable secure without excessive administrative overhead. The primary purposes of file-system permissions include enforcing by restricting unauthorized reading of sensitive data, maintaining through limitations on modifications, and supporting by regulating execution and deletion to prevent disruptions. They also mitigate risks such as , where limited access prevents low-privilege users or processes from gaining elevated control over system resources. At their core, file-system permissions adhere to fundamental principles like least privilege, which mandates granting only the minimal access necessary for tasks, and , which distributes control across entities to avoid single points of failure or abuse. These principles apply across user classes, such as individual owners and groups, to balance with robust protection.

Principal Entities and Access Rights

In file-system permissions, principal entities refer to the subjects that interact with files and directories, primarily consisting of users and groups. Users are individual accounts identified by unique user IDs (UIDs), representing human operators or processes acting on their behalf. Groups are collections of users sharing a group ID (GID), enabling collective access management for collaborative environments. In systems, every file or directory is associated with an owner—typically the user who created it—and a primary group. Permissions are then categorized into three classes: owner (applying solely to the file's owner), group (applying to members of the file's group), and others (encompassing all remaining users not covered by the prior classes). Other operating systems use different models, such as access control lists in Windows, as described in later sections. This structure allows fine-grained control by assigning distinct rights to each class, balancing security and usability. The core access rights granted to these entities are read, write, and execute. Read permission allows viewing the contents of a or listing the names of files and subdirectories within a . Write permission enables modifying, renaming, or deleting the file's contents, or adding/removing entries in a . Execute permission permits running a file as a or ; for directories, it specifically allows traversal—entering the to access its contents—though listing requires read permission in addition. These differ in behavior between files and directories to support hierarchical without unintended disclosure. In systems, to enforce permissions, the operating system follows a sequential evaluation using the requesting 's effective ID and group IDs. First, if the 's effective UID matches the file's owner UID, the owner-class permissions are applied. If not, the system checks whether the 's effective GID or any supplementary GIDs match the file's group GID; if a match occurs, group-class permissions are used. Otherwise, others-class permissions apply, ensuring access is denied if the relevant class lacks the required right (e.g., read for viewing). This priority order—owner, then group, then others—prevents broader access when stricter controls are intended. For instance, in a system, consider a owned by user with read permission granted only to the owner and no permissions for group or others. If user Bob, who is neither Alice nor in the file's group, attempts to read the file, the system evaluates Bob under the others , resulting in access denial to protect the file's confidentiality.

Unix-like Permission Systems

POSIX Classes and Operations

In POSIX-compliant systems, file-system permissions are organized into three distinct user classes to determine access rights: the owner class, which applies to the who owns the file; the group class, which applies to users belonging to the file's assigned group; and the other class, which applies to all remaining users not covered by the owner or group classes. These classes ensure a hierarchical and portable model, allowing fine-grained control over who can perform specific operations on files and directories. The core operations defined in are read (r), write (w), and execute (x), with meanings that vary slightly between regular files and directories. For regular files, the read permission allows a user to view the file's contents; the write permission enables modification of the contents; and the execute permission permits the file to be run as a or , provided the process has the necessary privileges. Note that deleting a file requires write permission on its parent directory, regardless of the file's own permissions. For directories, the read permission allows listing the directory's contents (e.g., via ls); the write permission enables creating, renaming, or deleting files and subdirectories within it; and the execute permission (also called search) allows traversing the directory to access its contents or subdirectories, which is essential for path resolution in operations like opening a file. Access is determined by mapping these operations to the relevant user class in a , where each class independently grants or denies the three operations via 9 bits (3 per class) in the file's mode. By default, the owner class often receives full permissions (read, write, execute), enabling the owner to modify the file and its permissions, while group and other classes start with more restricted defaults like read-only, adjustable via tools such as chmod. This provides a straightforward, bitmask-based structure for checking during calls like open() or stat(). These classes and operations were first standardized in POSIX.1 (IEEE Std 1003.1-1988), published in 1988 to promote portability across systems. Subsequent revisions, such as IEEE Std 1003.1-1990 and later editions up to IEEE Std 1003.1-2024, have refined the model for enhanced compatibility and integration with extended access controls, while preserving the core semantics.
User ClassRead (r)Write (w)Execute (x)
OwnerView contents (files); list contents (dirs)Modify contents (files); create/rename/delete entries (dirs)Run as (files); traverse/ subdirs (dirs)
GroupView contents (files); list contents (dirs)Modify contents (files); create/rename/delete entries (dirs)Run as (files); traverse/ subdirs (dirs)
OtherView contents (files); list contents (dirs)Modify contents (files); create/rename/delete entries (dirs)Run as (files); traverse/ subdirs (dirs)
Note: Permissions are independently set for each class and operation; access is granted if the effective matches a with the required bit set.

Special Permission Bits

In operating systems, special permission bits extend the standard read, write, and execute permissions by providing mechanisms for elevated or restricted access during execution or file operations. These bits—, setgid, and sticky—modify the behavior of files and directories in ways that can facilitate secure delegation or protect shared resources, but they also introduce potential vulnerabilities if misconfigured. The (set user ID) bit, when set on an file, causes the program to run with the effective ID of the file's owner rather than the invoking . This allows non-privileged users to perform tasks requiring elevated permissions without granting full administrative access. For instance, the /usr/bin/[passwd](/page/Passwd) utility, owned by , uses the setuid bit to enable ordinary users to update their password entries in system files like /etc/[shadow](/page/Shadow), which are otherwise protected. However, this bit poses significant risks, such as if the contains vulnerabilities or is replaced by a malicious version, potentially allowing attackers to gain -level access. Administrators are advised to audit and minimize setuid binaries to mitigate these threats. The setgid (set group ID) bit functions similarly but applies to the group ID. On executable files, it causes the program to run with the effective group ID of the file's group, enabling group-specific access to resources. For directories, the setgid bit ensures that newly created files and subdirectories inherit the directory's group ownership, which is useful for collaborative environments where members of a shared group need consistent access. For example, in a project directory owned by a development group, setting the setgid bit prevents new files from defaulting to the creator's personal group, maintaining group cohesion. Like , setgid can lead to unintended privilege exposure if applied to insecure executables. The , also known as the restricted deletion flag, applies primarily to directories and prevents users from deleting or renaming files within them unless they are the file owner, the directory owner, or . This protects shared directories from unauthorized removal of others' files while allowing writing. A common example is the /tmp directory, where the sticky bit ensures temporary files created by different users coexist without interference. Historically, the sticky bit on executable files indicated that the program's image should remain in after execution to improve , but this usage has been deprecated in modern systems in favor of its directory protection role. These special bits are stored as part of the file's mode bits in the filesystem inode and can be set or unset using the chmod command in either or notation. For example, chmod u+s file sets the bit on a file, while chmod +t directory applies the to a ; modes like 4755 (setuid with read/write/execute for owner, read/execute for group and others) provide precise control. Security best practices include avoiding or setgid on world-writable files to prevent tampering and regularly scanning for unnecessary special permissions.

Notation and Representation

In Unix-like systems, file permissions are commonly represented and manipulated using two primary notations: symbolic and octal. Symbolic notation employs letters to specify classes (user/owner u, group g, others o, or all a) combined with operators (+ to add, - to remove, or = to set exactly) and permission types (read r, write w, execute/search x). For instance, the command chmod u+rwx,g+rw,o-r file grants read, write, and execute permissions to the owner, adds read and write to the group, and removes read from others. This notation allows precise modifications without altering unspecified permissions. The ls -l command displays permissions in a compact symbolic format, prefixed by a file type indicator (e.g., d for , - for regular ) followed by nine characters representing the three classes, each with read (r), write (w), execute (x), or absent (-). An example output might show drwxr-xr-x for a where the owner has full access (rwx), the group has read and execute (r-x), and others have the same (r-x). Special permission bits, such as or setgid, replace the execute x with s or S in the owner or group execute position, with their effects detailed in the section on special permission bits. The stat command provides similar output, often in a more verbose or structured format for scripting purposes. Octal notation uses three base-8 s to represent permissions for owner, group, and others, where each is the sum of values for read (4), write (2), and execute (1); for example, 7 equals rwx (4+2+1), 6 equals rw- (4+2), 5 equals r-x (4+1), 4 equals r-- (4), and 0 equals --- (0). A mode like 755 corresponds to rwxr-xr-x, granting full access to the owner and read/execute to group and others. Special permissions prepend a fourth : 4 for , 2 for setgid, and 1 for , so 4755 sets on an with 755 permissions. The [chmod](/page/Chmod) command applies modes absolutely, replacing all existing permissions. To parse an mode like 644, break it into owner (6 = rw-), group (4 = r--), and others (4 = r--), resulting in rw-r--r-- for a regular . The chmod utility supports both notations, with octal preferred for absolute settings and symbolic for incremental changes; for example, chmod 644 [file](/page/File) or chmod u=rw,go=r [file](/page/File). Default permissions for newly created files and directories are determined by the process's , which masks out bits from the system's base modes (0666 for files, 0777 for directories) using bitwise AND with the complement of the umask value. A common umask of 022 subtracts write permissions for group and others, yielding 644 for files (0666 & ~022) and 755 for directories (0777 & ~022). The [umask](/page/Umask) command sets or displays this value, typically configured in profiles for consistent defaults across sessions.

Permissions in Other Operating Systems

Windows NTFS Permissions

The Windows file system employs a discretionary access control model, where permissions are managed through (DACLs) associated with files and directories. A DACL consists of ordered access control entries (ACEs) that specify allow or deny permissions for security principals, such as users or groups, identified by unique Security Identifiers (SIDs). SIDs are values assigned to accounts and groups, enabling precise identification across domains and local systems. If a file or directory lacks a DACL, the system grants full access to all users by default. This model was introduced with in 1993, providing robust security for enterprise environments. NTFS supports a of standard permissions that can be assigned to trustees—users, groups, or computer accounts—via the DACL. The six primary standard permissions are Full (encompassing all actions, including changing permissions and ownership), Modify (allowing read, write, execute, delete, and attribute changes but not permission modifications), Read & Execute (permitting reading files, executing programs, and traversing directories), List Folder Contents (enabling viewing file names and subfolders without opening files), Read (allowing viewing file contents and attributes), and Write (supporting creation, modification, and deletion of files). These can be further refined through granular special permissions, such as Traverse Folder (to navigate directories without read ), Delete Subfolders and Files (to remove contents within a folder), and Read Permissions (to view the settings without altering them). Permissions are typically assigned to built-in groups like Administrators (with broad ) or Users (with limited ) to simplify management. File ownership in designates a responsible for the object, granting the owner the ability to view and modify the DACL, as well as take ownership if necessary. Owners can delegate permission changes to other trustees, but only administrators or those with explicit Take Ownership privileges can override ownership. Built-in groups such as Administrators and often hold default ownership for system files, while user-created files inherit the creator's ownership. Permission evaluation in is handled by the AccessCheck function within the Windows security subsystem, which examines the DACL from most specific to least specific entries to determine effective access for a requesting principal. The process resolves the user's against the DACL, applying the first matching and stopping at explicit denies. Permissions inherit from parent directories unless explicitly blocked or disabled, allowing efficient propagation of access rules across folder hierarchies while supporting overrides for subobjects. This mechanism, combined with deny precedence, ensures granular and secure access resolution.

macOS and APFS Permissions

macOS utilizes a hybrid permission model that integrates the standard with proprietary extensions, providing both traditional and advanced access controls. At its core, the system adheres to permissions, featuring read (r), write (w), and execute (x) bits assigned to the file owner (u), group (g), and others (o), managed through user ID () and group ID (GID) attributes. This foundation allows basic , where owners can modify permissions for their files. Complementing these are Access Control Lists (ACLs), introduced in macOS 10.4 (), which enable finer-grained permissions via access control entries (ACEs) that specify allow or deny rules for individual users, groups, or everyone, beyond the standard u/g/o categories. The (APFS), adopted as the default file system starting with (10.13) in 2017, fully supports this hybrid model while enhancing metadata handling. APFS maintains and compatibility but introduces nanosecond-precision timestamps for creation, modification, access, and change times, represented as nanoseconds since January 1, 1970 UTC, which aids in precise auditing and for permissions. Additionally, APFS snapshots create read-only, point-in-time copies of volumes or directories, preserving the exact permissions and ACLs active at the snapshot's creation, thereby supporting without altering ongoing access controls. These features ensure that permission evaluations remain consistent across versions, even as files evolve. Apple extends this model with security mechanisms like System Integrity Protection (SIP), implemented since macOS 10.11 (El Capitan) in 2015, which enforces read-only restrictions on critical system directories such as /System, /usr, /bin, and /sbin, even for the root user, to prevent unauthorized modifications by malware or misconfigured software. App sandboxing further bolsters this by confining applications to predefined resources via entitlements, restricting file read/write/execute operations outside approved paths regardless of POSIX or ACL allowances. Permissions are inspected using the ls -le command to reveal ACL details alongside standard modes (indicated by a '+' suffix), while chmod and chown handle modifications—chmod +a adds ACL entries, and flags like com.apple.rootless denote SIP protections on system files. Inheritance in macOS permissions combines defaults—where new files inherit the parent's group and mode—with propagation flags, such as File Inherit and Directory Inherit, allowing ACEs to automatically apply to child objects upon creation. Administrators can propagate existing s to enclosed items using tools like Server.app or command-line options in chmod, ensuring consistent access across directory trees. complements these by mandating for executables; it verifies signatures and notarization before permitting execution, blocking unsigned or altered binaries to enforce secure run permissions at the system level.

Advanced Access Control Mechanisms

Access Control Lists (ACLs)

Access Control Lists (ACLs) provide a mechanism for fine-grained in file systems, extending beyond basic owner-group-others permissions by associating specific rules with individual users, groups, or entities on files and directories. ACLs support only allow rules, while Windows, NFSv4, and macOS ACLs also permit deny rules. An ACL consists of an ordered list of access control entries (ACEs), where each ACE defines a (user or group), a set of access rights, and flags controlling application or inheritance. ACLs, derived from the draft .1e standard, support this through minimum ACLs that map to traditional permissions and extended ACLs that add named entries with a mask for effective rights calculation. NFSv4 ACLs, specified in RFC 8881, further refine this model with detailed rights such as read_data, write_data, execute, and delete_child, enabling compatibility across networked environments. In Windows , ACLs are categorized into discretionary ACLs (DACLs), which owners or administrators set to control , and system ACLs (SACLs), used for auditing access attempts without affecting permissions. In DACLs, ACEs explicitly allow or deny to trustees, with evaluation proceeding sequentially until a match is found—denies overriding allows. in ACEs vary by system but commonly include read, write, execute, and delete operations; for instance, ACLs use read, write, and execute bits, while NFSv4 ACLs specify atomic actions like append_data or list_directory. In ACLs, effective are the union of all applicable allow entries, intersected by the ACL mask, without explicit denies or short-circuiting. Inheritance flags in ACEs, such as file_inherit or directory_inherit, propagate permissions to child objects, with options to limit scope to containers or non-containers. Implementations of ACLs appear across major operating systems and file systems, requiring explicit enablement in some cases. In , ACLs are supported on (via the acl mount option), , and other kernels since version 2.5.46, with tools like getfacl for viewing and setfacl for modifying entries. Windows uses ACLs as the default mechanism, storing DACLs and SACLs in file metadata for granular trustee-based control. macOS, on APFS and HFS+, implements ACLs with extensions for inheritance and compatibility with shares, managed via with +a or -a flags. These systems ensure ACL evaluation integrates with base permissions, applying the most restrictive effective rights. Compared to traditional permissions, offer superior flexibility by permitting per-user or per-group access without relying solely on group memberships, reducing administrative overhead in diverse environments. For example, in a shared directory with restrictive "" permissions, an can grant read access to a single additional user via a named , avoiding broad group changes. This supports scenarios like collaborative projects or cross-platform , such as integrating with Windows , while maintaining compatibility with base classes.

Mandatory Access Control (MAC)

Mandatory Access Control (MAC) is a security model in which access to resources, such as files, is regulated by a central authority through predefined policies rather than by the resource owners or users themselves. These policies typically assign security labels to subjects (e.g., processes) and objects (e.g., files), enforcing rules based on attributes like sensitivity levels or categories to prevent unauthorized information flow. A foundational example is the Bell-LaPadula model, which prioritizes confidentiality with principles such as "no read up" (subjects cannot access data at higher sensitivity levels) and "no write down" (subjects cannot transfer data to lower levels). Prominent implementations of MAC in file systems include SELinux, which has been integrated into the since 2003 and employs Type Enforcement to restrict access based on types assigned to processes and files. , another Linux Security Module, uses path-based profiles to confine applications since its maintenance by began in 2009, allowing administrators to define granular access rules tied to executable paths. Smack (Simplified Mandatory Access Control Kernel), also in the , applies labels to subjects and objects for straightforward enforcement of access decisions. In macOS, the Framework, derived from TrustedBSD and included since macOS 10.5, enables kernel-level policy modules to control file operations beyond discretionary permissions. Enforcement in systems occurs at the level, where modules intercept operations like open, read, and write to verify compliance with label-based rules before granting access. Many implementations, such as SELinux, support modes like "enforcing" (where violations are blocked and logged) and "permissive" (where violations are logged but allowed for testing). Unlike (DAC), where resource owners can grant or revoke permissions at their discretion, MAC prohibits such overrides to ensure system-wide policy adherence, making it suitable for high-security environments like government and military systems. This centralized approach complements mechanisms like Lists by adding non-discretionary layers for stricter protection.

Practical Implementation

User Private Groups

In Unix-like operating systems, User Private Groups (UPGs) implement a scheme where each user account is automatically assigned a unique primary group bearing the same name as the username, with the user as its sole member. This design simplifies permission management by isolating individual user files while facilitating controlled collaboration through secondary group memberships. The concept originated in 2, released in 1992, where it became a common practice for enhancing security in multi-user environments. The primary benefit of UPGs lies in enabling safer default permissions for home directories without risking exposure to other system users. By setting the default to 002, new directories created by the user receive 775 permissions (read/write/execute for owner and group, read/execute for others), and files get 664 (read/write for owner and group, read for others). Since the group contains only the user, these permissions remain private to the owner, avoiding the insecurities of world-writable homes (777 or 666 equivalents). This contrasts with traditional shared primary groups, where multiple users might inadvertently access each other's files; instead, UPGs reserve shared groups for explicit collaboration, such as project teams, where users are added as secondary members to enable group-write access on specific directories. Implementation occurs during user creation, typically via commands like useradd in Linux, which by default (or with the -g option) generates the private group. In the /etc/group file, this appears as an entry such as username:x:1001:username, where the GID is unique and the member list includes only the user. This setup integrates with POSIX group classes, allowing the primary group to govern default file ownership while secondary groups handle shared resources. UPGs have been widely adopted as a standard in major Linux distributions, including since early versions and (inheriting from Debian's implementation), where they are enabled by default to mitigate permission-related risks in shared systems. This practice avoids the vulnerabilities of broader group assignments, promoting a more secure baseline for file-system .

Permission Management Tools and Best Practices

In Unix-like systems, core permission management tools include chmod, which modifies file mode bits to set read, write, and execute permissions for owners, groups, and others using symbolic or notation. The chown command changes file ownership to a specified user and optionally group, while chgrp specifically alters the group ownership. These tools support recursive operations to apply changes across directories and files, essential for maintaining consistent access controls. In Windows, the icacls command displays or modifies discretionary access control lists (DACLs) on files and folders, supporting inheritance, denial, and propagation options for granular control. The older cacls tool performs similar functions but is deprecated in favor of icacls for enhanced features like backup and restore semantics. For macOS, the ditto utility copies files and directories while preserving ownership, permissions, resource forks, and metadata, making it suitable for backups or migrations without altering access rights. Auditing tools aid in monitoring permission changes. In Unix-like systems, getfacl retrieves and displays entries for files, revealing effective rights and masks beyond basic permissions. The auditd daemon, part of the Linux Audit System, logs permission modifications, ownership changes, and access attempts via configurable rules, enabling forensic analysis of events. In Windows, records file system access audits through event logs, capturing events like permission changes (e.g., Event ID 4670) when auditing is enabled on objects. Best practices emphasize secure defaults and maintenance. Setting the umask to 022 ensures new files default to 644 (rw-r--r--) and directories to 755 (rwxr-xr-x), preventing overly permissive creation by subtracting from base modes of 666 and 777, respectively. Avoid assigning 777 or 666 permissions, as they grant universal read/write/execute access, exposing systems to unauthorized modifications; instead, use targeted grants like 755 for executables. Conduct regular audits using tools like auditd or to detect drifts, ensuring compliance and identifying misconfigurations. Be cautious with permission inheritance in directories: in Unix, altering a parent's or modes does not retroactively apply to existing children, potentially leaving inconsistent access; in Windows , disabling inheritance converts rules to explicit ones, which may inadvertently grant or deny access if not propagated correctly. Security tips center on minimizing exposure. Adhere to the principle of least privilege by granting only necessary read/write/execute , reducing attack surfaces as recommended in standards. Upon departure, promptly revoke accounts, credentials, and privileges through coordinated termination processes to prevent lingering access. For cross-system environments, use to bridge Unix and Windows sharing, mapping permissions to ACLs while enforcing consistent controls during migrations. Common errors include misusing setuid bits, which elevate privileges and invite exploits; the 1988 Morris Worm, for instance, overflowed a buffer in the root-running fingerd daemon to spawn a root shell, infecting thousands of systems due to unchecked input in privileged code. To debug such issues, trace system calls with strace in Linux to inspect permission denials during file operations. In Windows, review Event Viewer logs for access failures to pinpoint inheritance or ACL mismatches.

References

  1. [1]
    Linux Filesystem Security, Part 1
    Each file has two owners, a user and a group, each with its own set of permissions that specify what the user or group may do with the file—read it, write to it ...
  2. [2]
    Linux file permissions explained - Red Hat
    Jan 10, 2023 · File permissions are core to the security model used by Linux systems. They determine who can access files and directories on a system and how.Missing: authoritative | Show results with:authoritative
  3. [3]
    PosixFilePermissions (Java Platform SE 8 ) - Oracle Help Center
    Within each set, the first character is 'r' to indicate permission to read, the second character is 'w' to indicate permission to write, and the third character ...
  4. [4]
    File Security and Access Rights - Win32 apps
    ### Summary of Windows File System Permissions, ACLs, and Overview
  5. [5]
    The Security War in File Systems: An Empirical Study from A ...
    File permissions are indispensable to the protection of user data. To enforce file permissions, file systems rely on standard permission models (e.g., u/g/o:r/w ...
  6. [6]
    [PDF] File System Security: Permissions - OPS102 Week 4 Class 1 - Matrix
    In multi-user operating systems it is very important to be able to control who has access to files and folders. • This is achieved by setting permissions of ...Missing: definition | Show results with:definition
  7. [7]
    The Evolution of File Systems - Paul Krzyzanowski
    Aug 26, 2025 · Access control lists: fine-grained permissions on files and directories. Unix (1970s) refined and popularized hierarchical file systems with ...
  8. [8]
    Unix: An Oral History - GitHub Pages
    The Unix file system was based almost entirely on the file system for the failed Multics project. The idea was for file sharing to take place with explicitly ...
  9. [9]
    Mastering File Permissions in Linux - ITPro Today
    Jul 14, 2023 · How Do We Use File Permissions? We use file permissions to maintain the confidentiality, integrity, and availability of files and folders.Using The Ls Command To... · Set Permissions Based On... · Owner Role<|control11|><|separator|>
  10. [10]
    POS02-C. Follow the principle of least privilege - Confluence
    The principle of least privilege states that every program and every user of the system should operate using the least set of privileges necessary to complete ...
  11. [11]
    [PDF] Least privilege and privilege separation - UCSD CSE
    Feb 6, 2025 · Defn: A system should only have the minimal privileges needed for its intended purposes. • What's a privilege? < Ability to access (e.g., ...
  12. [12]
    PR.AC-4: Access permissions and authorizations are managed ...
    Separation of duties includes dividing mission functions and system support functions among different individuals or roles; conducting system support functions ...
  13. [13]
    Unix File Permissions - NERSC Documentation
    Every file (and directory) has an owner, an associated Unix group, and a set of permission flags that specify separate read, write, and execute permissions.
  14. [14]
    [PDF] Unix Discretionary Access Control - Data Security and Privacy
    What is the threat model? – Users may be malicious, users have terminal access to computers, software may be malicious/buggy, and so on.
  15. [15]
    Access Control Overview | Microsoft Learn
    Apr 7, 2025 · When you set permissions, you specify the level of access for groups and users. For example, you can let one user read the contents of a file, ...
  16. [16]
    Precedence of user and group owner in file permissions
    Jun 3, 2014 · User permissions take precedence over group permissions, which take precedence over other permissions. If the file's owner is the process's ...What has priority - owner/user vs group permission? [duplicate]Understanding UNIX permissions and file typesMore results from unix.stackexchange.comMissing: evaluation | Show results with:evaluation
  17. [17]
    4. General Concepts
    The file permission bits of a file contain read, write, and execute/search permissions for the file owner class, file group class, and file other class. ... 1 ...
  18. [18]
    [PDF] IEEE standard portable operating system interface for computer ...
    (1) Specify file permission bits for the file owner class, file group class, and file other class of the file, corresponding to the access permissions, to be.
  19. [19]
    IEEE 1003.1-1988 - IEEE SA
    1003.1-1990; Board Approval: 1988-08-22; History. ANSI Approved: 1989-11-10; Published: 1988-09-30. Working Group Details. Society: IEEE Computer Society ...Missing: publication | Show results with:publication
  20. [20]
    POSIX™ 1003.1 Frequently Asked Questions (FAQ Version 1.18)
    May 25, 2025 · In general they build upon the foundations of the POSIX standard. Two white papers with further information on this topic are available at ...
  21. [21]
    chmod
    ### Summary of Special Permissions: setuid, setgid, Sticky Bit
  22. [22]
    Linux permissions: SUID, SGID, and sticky bit - Red Hat
    Oct 15, 2020 · SUID executes as the file owner, SGID as the group owner, and the sticky bit restricts file deletion in a directory to only the owner or root.
  23. [23]
    setuid Permission
    A passwd command with setuid permission would resemble the following: -r-sr-sr-x 3 root sys 28144 Jun 17 12:02 /usr/bin/passwd. This special permission ...
  24. [24]
    Special File Permissions (setuid, setgid and Sticky Bit)
    Special file permissions include setuid, which grants access based on the file owner; setgid, which changes the group ID; and sticky bit, which protects files ...
  25. [25]
    Classic SysAdmin: Understanding Linux File Permissions
    Jan 6, 2022 · I will go over the ways to assign permissions and show you some examples where modification may be necessary.Missing: authoritative | Show results with:authoritative
  26. [26]
    Linux Sticky Bit Concept Explained with Examples - The Geek Stuff
    Feb 26, 2013 · The sticky bit is not a new concept. In fact, it was first introduced in in 1974 in the Unix operating system. The purpose of sticky bit back ...
  27. [27]
    chmod - The Open Group Publications Catalog
    The permcopy symbols u, g, and o shall represent the current permissions associated with the user, group, and other parts of the file mode bits, respectively.
  28. [28]
    ls - The Open Group Publications Catalog
    When -L is used with -l, write the contents of symbolic links in the long format (see the STDOUT section). ... This volume of POSIX.1-2017 is frequently ...
  29. [29]
    umask(2) - Linux manual page - man7.org
    The umask is used by open(2), mkdir(2), and other system calls that create files to modify the permissions placed on newly created files or directories.
  30. [30]
    File System Details - Apple Developer
    Apr 9, 2018 · POSIX ACLs. Starting in macOS 10.4, the Mach and BSD permissions policies are supplemented by support in the kernel for ACLs (access control ...
  31. [31]
    File System Basics - Apple Developer
    Apr 9, 2018 · APFS is the default file system in macOS, iOS, watchOS, and tvOS. APFS replaces HFS+ as the default file system for iOS 10.3 and later, and ...
  32. [32]
    [PDF] Apple File System Reference
    Jun 22, 2020 · Apple File System is the default file format used on Apple platforms. Apple File System is the successor to HFS.
  33. [33]
    About System Integrity Protection on your Mac - Apple Support
    Mar 20, 2025 · System Integrity Protection is a security technology designed to help prevent potentially malicious software from modifying protected files and folders on your ...
  34. [34]
  35. [35]
    Gatekeeper and runtime protection in macOS - Apple Support
    Dec 19, 2024 · macOS includes a security technology called Gatekeeper, which is designed to help ensure that only trusted software runs on a user's Mac.
  36. [36]
    [PDF] PSSG / D17 October 1997
    Oct 17, 1997 · The standard is intended for system implementors and application software develop- ers. It is an extension to IEEE Std 1003.1-1990. c.
  37. [37]
    acl(5) - Linux manual page - man7.org
    The file owner, group, and other permissions always match the permissions of the corresponding ACL entry. Modification of the file permission bits results in ...Missing: classes | Show results with:classes
  38. [38]
    Access Control Lists - Win32 apps - Microsoft Learn
    Jul 9, 2025 · An access control list (ACL) is a list of access control entries (ACE). Each ACE in an ACL identifies a trustee and specifies the access rights allowed, denied ...
  39. [39]
  40. [40]
    19 Access control lists in Linux - SUSE Documentation
    More advanced features are the setuid, setgid and sticky bit. 19.1.1 The setuid bit #. In certain situations, the access permissions may be too restrictive ...
  41. [41]
    AC-3(3): Mandatory Access Control - CSF Tools
    Mandatory access control is a type of nondiscretionary access control. Mandatory access control policies constrain what actions subjects can take with ...
  42. [42]
    [PDF] Topic 5: The Bell LaPadula Model - Data Security and Privacy
    Mandatory Access Control. • Mandatory access controls (MAC) restrict the access of subjects to objects based on a system-wide policy. – denying users full ...
  43. [43]
    [PDF] NSA Security-Enhanced Linux (SELinux)
    SELinux Policy Engine. • Referred to as the “security server” due to origins. • Implements a combination of: – RoleBased Access Control. – Type Enforcement. – ...
  44. [44]
    AppArmor
    It has been included in the mainline Linux kernel since version 2.6.36 and its development has been supported by Canonical since 2009. Installation. Many Linux ...
  45. [45]
    Smack — The Linux Kernel documentation
    Smack is a kernel based implementation of mandatory access control that includes simplicity in its primary design goals. Smack is not the only Mandatory Access ...
  46. [46]
    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).<|separator|>
  47. [47]
    [PDF] Lecture 11: Access Control Policies - UT Computer Science
    Mandatory Access Controls (MAC): rules are enforced on every attempted access, not at the discretion of any system user;. Discretionary Access Controls (DAC): ...
  48. [48]
    SELinux and RHEL: A technical exploration of security hardening
    Feb 10, 2025 · Use setenforce to toggle between enforcing and permissive modes without rebooting. $ sudo setenforce 0 # Switch to permissive mode $ sudo ...
  49. [49]
    Access Control Models and Methods - Delinea
    The Mandatory Access Control, or MAC, model gives only the owner and custodian management of the access controls. This means the end-user has no control over ...<|control11|><|separator|>
  50. [50]
    Re: user private groups and a src group - Debian Mailing Lists
    Mar 23, 1994 · ... user private groups ... The Cambridge University Computing Service don't seem to have had any problems with it on SunOS 4 and Solaris 2, for ...
  51. [51]
    6.4. User Private Groups | Reference Guide | Red Hat Enterprise Linux
    User private groups (UPGs) in Red Hat Enterprise Linux make UNIX groups easier to manage. A UPG is created for each new user, and that user is the only member.
  52. [52]
    Why does every user have their own group?
    Sep 2, 2014 · Each user has their own group to mitigate security concerns and allow collaboration with less permission hassles, emulating the 022/644 scheme.is the default group "users" specific? - Unix & Linux Stack ExchangeReasons behind the default groups and users on LinuxMore results from unix.stackexchange.comMissing: Solaris adoption
  53. [53]
    UserPrivateGroups - Debian Wiki
    Aug 2, 2024 · User private groups (UPGs) are a system configuration idiom that allows multiple users of a system to collaborate on files without any permission hassle.Missing: Solaris 1992
  54. [54]
    chmod(1) - Linux manual page
    ### Summary of chmod Command Description
  55. [55]
    chown(1) - Linux manual page
    ### Summary of `chown` Command Description
  56. [56]
    chgrp(1) - Linux manual page
    ### Summary of chgrp Command Description
  57. [57]
    icacls | Microsoft Learn
    Jun 9, 2025 · Reference article for the icacls command, which displays or modifies discretionary access control lists (DACL) on specified files, ...Syntax · Remarks
  58. [58]
    cacls - Microsoft Learn
    Feb 3, 2023 · This command has been deprecated. Please use icacls instead. Displays or modifies discretionary access control lists (DACL) on specified files.
  59. [59]
    ditto Man Page - macOS - SS64.com
    Ditto can preserve ownership / permissions, HFS resource forks and file / folder metadata. Ditto will automatically create the destination folder if it doesn't ...
  60. [60]
    getfacl(1) - Linux manual page
    ### Summary of getfacl for Viewing ACLs
  61. [61]
  62. [62]
    4670(S) Permissions on an object were changed. - Windows 10
    Sep 7, 2021 · Event 4670(S) generates when permissions for an object (file system, registry, or security token) are changed, but not if SACL was changed. ...
  63. [63]
    Chapter 10. Managing file system permissions
    The default umask for a standard user is 0002 . The default umask for a root user is 0022 . The first digit of the umask represents special permissions (sticky ...<|control11|><|separator|>
  64. [64]
    Linux permissions: An introduction to chmod - Red Hat
    Sep 10, 2019 · Avoid using boundary cases, such as chmod 777 <file-name> and chmod 000 <filename> . Using chmod 777 <file-name> gives everyone rwx permissions, ...Missing: Unix | Show results with:Unix
  65. [65]
    [PDF] NIST SP 800-123, Guide to General Server Security
    This document discusses the need to secure servers and provides recommendations for selecting, implementing, and maintaining the necessary security controls.
  66. [66]
    Manage Access to Windows Objects with ACLs & .NET
    Oct 10, 2019 · The inherit only flag simply means that the rule applies to child objects only and not to the object itself. Thus, you can grant rights just to ...
  67. [67]
    NIST SP 800-171r3 - NIST Technical Series Publications
    Organizations employ the principle of least privilege for specific duties and authorized access for users and system processes. Least privilege is applied to ...Missing: tips | Show results with:tips
  68. [68]
    SP 800-53 Rev. 5, Security and Privacy Controls for Information Systems and Organizations | CSRC
    ### Summary of AC-2 on Account Management (Revoking Access Upon Termination)
  69. [69]
    smb.conf - Samba.org
    This allows all members of a UNIX group to control the permissions on a file or directory they have group ownership on.
  70. [70]
    None
    Summary of each segment:
  71. [71]
    Container permission denied: How to diagnose this error - Red Hat
    Apr 29, 2022 · This article explains how to figure out what the container is trying to do that is blocked by container security and how to run your container with more ...A. Is Selinux The Issue? · C. Test Capabilities · 2. Namespace IssuesMissing: Viewer | Show results with:Viewer