Windows NTFS Permissions

Windows access control is default-deny: an access check must find an explicit allow entry or the request is refused. NTFS permissions apply to files and folders on NTFS-formatted volumes and are enforced locally (including over the network when combined with share permissions).

Folder permissions

PermissionWhat it allows
ReadView and list files and subfolders
WriteAdd files and subfolders
Read & ExecuteView, list, and execute files; inherited by files and folders
List Folder ContentsView, list, and execute files; inherited by folders only
ModifyRead, write, execute, and delete the folder itself
Full ControlRead, write, change permissions, and delete files and subfolders

File permissions

PermissionWhat it allows
ReadView the file’s contents
WriteWrite to the file
Read & ExecuteView contents and execute the file
List Folder ContentsN/A (folder-only)
ModifyRead, write, execute, and delete the file
Full ControlRead, write, change permissions, and delete the file

Comparison with UNIX permissions

The models differ in important ways:

DimensionWindows NTFSUNIX (traditional)
Granularity per user/groupCoarser — six preset permission levelsFiner — read/write/execute bits
Granularity across users/groupsNo limit — each user or group gets its own ACEThree sets only (owner, group, other)
Deletion controlSeparate “sub-permission” (part of Modify / Full Control)Determined by write on the parent directory
Permission changeRequires Full Control or explicit “Change permissions” rightRequires ownership
InheritanceExplicit inheritance model with propagation flagsumask-based, no per-object ACLs without POSIX ACLs

Windows treats deletion and permission changes as distinct sub-permissions that can be granted independently. UNIX has no direct equivalent — the ability to delete depends on the parent directory’s write bit.

In many ways the NTFS model is more expressive than the traditional UNIX model (pre-POSIX ACLs), because it supports arbitrarily many access control entries (ACEs) per object and separates concerns that UNIX conflates.

Security relevance

  • Misconfigured permissions are a common privilege escalation vector. Services running as SYSTEM with weak file/folder permissions on their binaries allow replacement with malicious executables. See windows-reconnaissance-commands for how to enumerate these.
  • icacls is the built-in command-line tool for inspecting and modifying NTFS permissions (superseded cacls).
  • Share permissions and NTFS permissions are both evaluated for network access; the most restrictive result wins.

Sources

Related: windows-reconnaissance-commands, amsi-bypass