adb permission denied to push files to subdirectry Why would I get permission denied using adb to copy a directory to a subdirectory on my phone, when I could copy to its parent directory and both have the same permission?

I tried this from my PC to my Nexus 5 running 6.0.1 (Oct 5):

adb push Dir /sdcard/Dir/Subdir


It failed with 

Permission denied


This has worked before, with no changes I'm aware of.

I launched adb shell and ran 

ls -l


to get permissions for /sdcard (storage/emulated/0), /sdcard/Dir and /sdcard/Dir/Subdir:

drwxrwx--x root sdcard_rw


I then:

cd /sdcard/Dir/Subdir
mkdir XYZ


Got 

mdkdir: XYZ: Permission Denied


Tried:

su
mkdir XYZ


Again, permission denied

I then tried another push

adb push XYZ /sdcard/Dir


This worked and copied all of the files.

Why would it work to /sdcard/Dir and not to /sdcard/Dir/Subdir, when both have the same permissions?  Why would permission be denied for root?
As it appears in this comment, the file permissions and access control to SubDir differs from what ideally should be.

The problem:

# ls -l on /data/media/0/Dir
dwrxrwxr-x root root


The user group should have been media_rw instead of root.

The solution is to change to appropriate group or make the directory writable by others.


chmod 777 /data/media/0/Dir/SubDir       # making SubDir writable by others
chgrp media_rw /data/media/0/Dir/SubDir  # Alternatively, changing group from root to media_rw


Note: you may need to install Busybox or Toybox to have and use chmod and/or chgrp.