Print Email PDF

File Move Behavior Differences between SMB Clients

IN THIS ARTICLE 

Outlines the differences in file movement behavior between Windows and Mac/Linux SMB clients

REQUIREMENTS

  • Windows, Mac, or Linux SMB client

DETAILS

While Windows, Mac, and Linux Operating Systems all support standard SMB file movement implementations, Windows Explorer exhibits considerably different behavior from the other two SMB clients, as well as the Windows Command Prompt, when moving objects between directories in the same SMB Share.

These differences become apparent when it comes to the handling of inherited NTFS ACLs (Access Control Lists, or lists of NTFS File Permissions) and can cause confusion if not anticipated and understood.

NOTE: These behavior differences are not specific to Qumulo Core.

OVERVIEW

The table below outlines the ACL differences when moving a test directory via various clients:

File Move Method

Resulting ACL

Windows Explorer drag-and-drop

Inherited ACL of the new Parent directory

Windows CMD “Move” Command

Original inherited ACL

Mac Finder drag-and-drop

Original inherited ACL

Linux or Mac “mv” command

Original inherited ACL

 

EXAMPLE

This example shows the results of moving a directory titled "MoveMe", which has ACL attributes inherited from "One_Folder" (its parent directory), into a directory titled "Another_Folder", which has entirely different attributes.

The following image shows the attributes for  "MoveMe":

As shown above, "MoveMe" grants Modify, Read & execute, List folder contents, and Read access to the nfsusers group.

The image below shows the ACL attributes for "Another_Folder", the destination directory:

The Group 15 group has Modify, Read & execute, List folder contents, and Read access. Once the move is completed using Windows Explorer, "MoveMe" inherits these properties:

However, performing the exact same move operation using any of the other methods (via Windows CMD, Mac, or Linux client) results in the following attributes:

ANALYSIS

Performing the move with Windows Explorer in the example above caused the moved objects to inherit the new Parent directory’s inheritable ACL, whereas performing it using any of the other methods caused the original inherited ACL to be retained. This difference in behavior is due to Windows Explorer calculating what the new inherited ACL should be in advance and applying the changes to the objects being moved. 

While this may be a desirable behavior in many scenarios, it does add extra metadata editing operations to the files being moved and can take a considerably longer time compared to the other methods listed above, which are simple and instant inode operations.

If you don't want this behavior in Windows Explorer, you can alter it to match other methods by following the steps below:

  1. Open the Windows Start Menu and type regedit to open the Windows Registry Editor.

    regedit.png

  2. Navigate to the Registry Key path shown below:

    regedit_location.png

  3. Right-click in the right-hand portion of the Regedit window and select New > DWORD (32-bit) Value.

    regedit_dword.png

  4. Name the new DWORD value MoveSecurityAttributes and double-click it to open the Edit window.

    regedit_dword_value.png

  5. Leave the Value data: field set to 0 and click OK to save.

NOTE: The behavior can be returned to the default setting by changing the MoveSecurityAttributes DWORD value to 1.

RESOLUTION

You should now be able to successfully identify  the differences in file movement behavior between Windows and Mac/Linux SMB clients

ADDITIONAL RESOURCES

How permissions are handled when you copy and move files and folders (Microsoft Support Article)

 

Like what you see? Share this article with your network!

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.

Have more questions?
Open a Case
Share it, if you like it.