Skip to content

Checking Ownership and Permission Data in an NTFS Volume

Jean-Pierre André edited this page Aug 25, 2021 · 3 revisions

ntfssecaudit displays the ownership and permissions of a set of files on an NTFS file system, and checks their consistency. It can be started in terminal mode only (no graphical user interface is available) either on Linux or on Windows.

The available options are the same in Linux and Windows though the syntax may be different, and in both cases, you issue in a terminal window a command such as :

ntfssecaudit [options] args Where options is a combination of :

  • -a full auditing of security data
  • -b backup ACLs
  • -e setting extra backed-up parameters (in conjunction with -s)
  • -h displaying hexadecimal security descriptors saved in a file
  • -r recursing in a directory
  • -s setting backed-up ACLs
  • -u getting a user mapping proposal
  • -v verbose (very verbose if set twice)

and args define the parameters and the set of files acted upon.

Typing ntfssecaudit with no args will display a summary of available options.

When acting on a directory or volume, the command may produce a lot of information. It is therefore advisable to redirect the output to a file or pipe it to a text editor for examination.

Windows version

On Windows, files and directories designate (implicitly or explicitly) the volume they belong to. Hence, usually, the command has no argument to designate the volume. A single file or directory may be acted upon (wildcards not supported) and, if its name has spaces or special characters, it has to be enclosed in quotes.

Most commands have to be started as an Administrator, and the other applications which use the volume have to be closed if the command has to update an ACL to the volume.

The valid combinations of options and args are:

  • ntfssecaudit -h file

displays in an human readable form the hexadecimal security descriptors saved in file. This can be used to turn a verbose output into a very verbose output.

  • ntfssecaudit -a[rv] volume

audits the volume : all the global security data on volume are scanned and errors are displayed. If option -r is present, all files and directories are also scanned and their relations to global security data are checked. This can produce a lot of data. This option is not effective on volumes formatted for old NTFS versions (pre NTFS 3.0). Such volumes have no global security data. When errors are signalled, it is advisable to repair the volume with an appropriate tool (such as chkdsk.)

  • ntfssecaudit [-v] file

displays the security parameters of file: its interpreted Linux mode (rwx flags in octal) and Posix ACL[1], and its security descriptor if verbose output.

  • ntfssecaudit -r[v] directory

displays the security parameters of all files and subdirectories in directory : their interpreted Linux modes (rwx flags in octal) and Posix ACLs[1], and their security descriptor if verbose output.

  • ntfssecaudit -b[v] directory

recursively extracts to standard output the NTFS ACLs of files in directory.

  • ntfssecaudit -s[ev] volume [backup-file]

sets the NTFS ACLs as indicated in backup-file or standard input. The input data must have been created on Windows. The other applications which use the volume have to be closed. With option -e, also sets extra parameters (currently Windows attrib).

  • ntfssecaudit perms file

sets the security parameters of file to perms. Perms is the Linux requested mode (rwx flags, expressed in octal form as in chmod), or a Posix ACL[1] (expressed like in setfacl -m). It sets a new NTFS ACL which is effective for Linux and Windows. The other applications which use the same volume have to be closed.

  • ntfssecaudit -r[v] perms directory

sets the security parameters of all files and subdirectories in directory to perms. Perms is the Linux requested mode (rwx flags, expressed in octal form as in chmod), or a Posix ACL[1] expressed like in setfacl -m). This sets new ACLs which are effective for Linux and Windows. The other applications which use the same volume have to be closed.

  • ntfssecaudit -u[v] file

displays a proposal for a user mapping file, based on the ownership parameters set by Windows on file, assuming this file was created on Windows by the user to map. The Linux login and group have to be inserted into the displayed information and copied to the file .NTFS-3G\UserMapping where .NTFS-3G is a hidden subdirectory of the root of the partition for which the mapping is to be defined. This will cause the ownership of files created on that volume by this user on Linux to be the same as the original file.

Linux version

On Linux (and OpenIndiana), the ntfssecaudit executable is installed as part of the advanced ntfs-3g package. Its execution requires the full package to be installed.

The NTFS partition has to be unmounted, so the command has an argument to designate the volume, and the file or directory designation has to be relative to the root of the NTFS partition. A single file or directory may be acted upon (wildcards must resolve to a single name), and if its name has spaces or special characters, it has to be enclosed in quotes.

Moreover the command has to be issued as root.

Older versions of the command were called ntfs-3g.secaudit, with the same options.

The valid combinations of options and args are:

  • ntfssecaudit -h file

displays in an human readable form the hexadecimal security descriptors saved in file. This can be used to turn a verbose output into a very verbose output.

  • ntfssecaudit -a[rv] volume

audits the volume : all the global security data on volume are scanned and errors are displayed. If option -r is present, all files and directories are also scanned and their relations to global security data are checked. This can produce a lot of data.

This option is not effective on volumes formatted for old NTFS versions (pre NTFS 3.0). Such volumes have no global security data.

When errors are signalled, it is advisable to repair the volume with an appropriate tool (such as chkdsk on Windows.)

  • ntfssecaudit [-v] volume file

displays the security parameters of file : its interpreted Linux mode (rwx flags in octal) and Posix ACL[1], its security key if any, and its security descriptor if verbose output.

  • ntfssecaudit -r[v] volume directory

displays the security parameters of all files and subdirectories in directory : their interpreted Linux mode (rwx flags in octal) and Posix ACL[1], their security key if any, and their security descriptor if verbose output.

  • ntfssecaudit -b[v] volume [directory]

recursively extracts to standard output the NTFS ACLs of files in directory.

  • ntfssecaudit -s[ev] volume [backup-file]

sets the NTFS ACLS as indicated in backup-file or standard input. The input data must have been created on Linux. With option -e, also sets extra parameters (currently Windows attrib).

  • ntfssecaudit volume perms file

sets the security parameters of file to perms. Perms is the Linux requested mode (rwx flags, expressed in octal form as in chmod) or a Posix ACL[1] (expressed like in setfacl -m). This sets a new ACL which is effective for Linux and Windows.

  • ntfssecaudit -r[v] volume perms directory

sets the security parameters of all files and subdirectories in directory to perms. Perms is the Linux requested mode (rwx flags, expressed in octal form as in chmod), or a Posix ACL[1] (expressed like in setfacl -m). This sets new ACLs which are effective for Linux and Windows.

  • ntfssecaudit [-v] mounted-file

displays the security parameters of mounted-file : its interpreted Linux mode (rwx flags in octal) and Posix ACL[1], its security key if any, and its security descriptor if verbose output. This is a special case which acts on a mounted file (or directory) and does not require being root. The Posix ACL interpretation can only be displayed if the full path to mounted-file from the root of the global file tree is provided

  • ntfssecaudit -u[v] mounted-file

displays a proposal for a user mapping file, based on the ownership parameters set by Windows on mounted-file, assuming this file was created on Windows by the user who should be mapped to the current Linux user. The displayed information has to be copied to the file .NTFS-3G/UserMapping where .NTFS-3G is a hidden subdirectory of the root of the partition for which the mapping is to be defined. This will cause the ownership of files created on that partition by the current user to be the same as the original mounted-file.

Note

[1] provided the POSIX ACL option was selected at compile time. A Posix ACL specification looks like "[d:]{ugmo}:[id]:[perms],..." where id is a numeric user or group id, and perms an octal digit or a set from the letters r, w and x. Example: "u::7,g::5,o:0,u:510:rwx,g:500:5,d:u:510:7"