Archive for January 2012

NTFS Permissions after copying or moving Files

Useful for Reference.

Copying Files and Folders

When copying folder or files from one folder to another folder or from one partition to another partition, permissions for this files or folders may change.

  1. When copying a folder or file within same NTFS partition, the copy of the folder or file inherits the destination folder permissions
  2. When copying a folder or file between different NTFS partitions, the copy of the folder or file inherits the destination folder permissions.
  3. When copying folders or files to non NTFS partitions such as File Allocation table (FAT), the files or folders will lose their all NTFS permissions.

Moving Files and Folders

When moving a file or a folder, permissions may get changed depending on the destination folder permissions.

Note: To move folders and files within an NTFS partitions you must have both permissions, for the destination folder you should have write permission and modify permissions for source file or folder to configure the options. You need to have modified permission for folder or file to move as Windows 2000 will remove the file or folder from the main folder after copying it to the folder destination.

  1. When moving a file to a folder within the same NTFS partition, the folder or file will retains its original permissions.
  2. When moving a folder or file between different NTFS partitions, the file or folder will inherit the destination folder permissions.
  3. When moving files to folders on NTFS partitions to non NTFS partitions the folders and files will lose their all NTFS permissions, as NTFS permissions are not supported by non NTFS partitions.

ICACLS Permissions

In my last role, we had to create large folder structures including permissioning very quickly in Windows 2008 R2 and as a result we came across ICALCS which proved very useful .

ICACLS name /save aclfile [/T] [/C]

Store the acls for all matching file/folder names into aclfile for later use with /restore.

ICACLS directory [/substitute SidOld SidNew […]] /restore aclfile [/C]

Applies the stored acls to files in directory.

ICACLS name /setowner user [/T] [/C]

Changes the owner of all matching names.

ICACLS name /findsid Sid [/T] [/C]

Finds all matching names that contain an ACL explicitly mentioning Sid.

ICACLS name /verify [/T] [/C]

Finds all files whose ACL is not in canonical form or whose lengths are inconsistent with ACE counts.

ICACLS name /resize [/T] [/C] [/L]

Changes incorrect recorded lengths of ACLs to true lengths.

ICACLS name /reset [/T] [/C]

Replaces acls with default inherited acls for all matching files.

ICACLS name [/grant[:r] Sid:perm[…]]

                       [/deny Sid:perm […]]

                       [/remove[:g|:d]] Sid[…]] [/T] [/C]

With :r, the permissions replace any previously granted explicit permissions.

Without :r, the permissions are added to any previously granted explicit permissions.

/deny Sid:perm explicitly denies the specified user access rights.

An explicit deny ACE is added for the stated permissions and the same permissions in any explicit grant are removed.

/remove[:[g|d]] Sid removes all occurrences of Sid in the acl.

With :g, it removes all occurrences of granted rights to that Sid.

With :d, it removes all occurrences of denied rights to that Sid.

 

Note:

Sids may be in either numeric or friendly name form. If a numeric form is given, affix a * to the start of the SID.

/T indicates that this operation is performed on all matching files/directories below the directories specified in the name.

/C indicates that this operation will continue on all file errors.

Error messages will still be displayed.

 

ICACLS preserves the canonical ordering of ACE entries:

Explicit denials

Explicit grants

Inherited denials

Inherited grants

 

Perm is a permission mask and can be specified in one of two 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 parentheses 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 form and are applied only to directories:

(OI) – object inherit

(CI) – container inherit

(IO) – inherit only

(NP) – don’t propagate inherit

 

Examples:

icacls c:\windows\* /save AclFile /T

– Will save the ACLs for all files under c:\windows and its subdirectories to AclFile.

icacls c:\windows\ /restore AclFile

– Will restore the Acls for every file within AclFile that exists in c:\windows and its subdirectories

icacls file /grant Administrator:(D,WDAC)

– Will grant the user Administrator Delete and Write DAC permissions to file

icacls file /grant Administrator:(OI)(CI)M

– Will grant the user Administrator Modify permissions to the file and ripple this downwards for file and folder permissions

icacls file /grant *S-1-1-0:(D,WDAC)

– Will grant the user defined by sid S-1-1-0 Delete and Write DAC permissions to file

 

Folder Path Spaces

If there are spaces in the folder path names, you will need to put quotes in as follows

ICACLS “C:\Test Folder\Second Part\Third Part” /grant user123:(OI)(CI)R