Understanding ICACLS permissions

From the Microsoft Article on ICACLS

The entries are users and groups specific to that file (DOMAIN\USER or GROUP), the permissions listed are as follows:

SIDs may be in either numerical or friendly name form. If you use a numerical form, affix the wildcard character * to the beginning of the SID.

icacls preserves the canonical order of ACE entries as:

• Explicit denials

• Explicit grants

• Inherited denials

• Inherited grants

Perm is a permission mask that can be specified in one of the following forms:

1. A sequence of simple rights:

○ F (full access)

○ M (modify access)

○ RX (read and execute access)

○ R (read-only access)

○ W (write-only access)

2. A comma-separated list in parenthesis of specific rights:

○ D (delete)

○ RC (read control)

○ WDAC (write DAC)

○ WO (write owner)

○ S (synchronize)

○ AS (access system security)

○ MA (maximum allowed)

○ GR (generic read)

○ GW (generic write)

○ GE (generic execute)

○ GA (generic all)

○ RD (read data/list directory)

○ WD (write data/add file)

○ AD (append data/add subdirectory)

○ REA (read extended attributes)

○ WEA (write extended attributes)

○ X (execute/traverse)

○ DC (delete child)

○ RA (read attributes)

○ WA (write attributes)

Inheritance rights may precede either Perm form, and they are applied only to directories:

• (OI): object inherit

• (CI): container inherit

• (IO): inherit only

• (NP): do not propagate inherit

• (I): permission inherited from parent container

For files, the permission masks are more or less self-explanatory: R means you can read the file, Xallows it to be executed (as a program), and so on.

For other kinds of objects, you will have to browse MSDN:

• Standard Access Rights

• ACE Inheritance Rules

• Registry

• Service

• ...

Inheritance rights in English:

• (I) "Inherited": This ACE was inherited from the parent container.

• (OI) "Object inherit": This ACE will be inherited by objects placed in this container.

• (CI) "Container inherit": This ACE will be inherited by subcontainers placed in this container.

• (IO) "Inherit only": This ACE will be inherited (see OI and CI), but does not apply to this object itself.

• (NP) "Do not propagate": This ACE will be inherited by objects and subcontainers one level deep – it will not apply to things inside subcontainers.

For the file system, "container" means a folder and "object" means a file, but remember that ACLs can be set on many other kinds of objects, not all of which have a concept of "containers".

Last updated