The proposal is to emulate Hadoop read(r), write(w), execute permissions on top of the Windows ACL based access control. RawLocalFileSystem could be improved to map rwx to Windows permissions and set them for the users and groups using the “icacls” Windows command. Similar commands would need to found for other operations. E.g. we can use “takeown” command for changing the ownership of a file/dir.
There is no concept of “others” on Windows but that could be emulated using either the built-in “Everyone” or “AuthenticatedUsers” Windows groups. RawLocalFileStatus would map “others” to one of these groups when running on Windows. Alternatively, Hadoop daemons could always assign no permissions to "others" on Windows or make other permissions == group permissions.
When a user creates a file on Unix then it gets group permissions based on the default group of the user. On Windows, such a file could inherit permissions ACL's from multiple groups (say machine Administrators etc) and we might need to see how the default group permissions can be made to work.
Lastly, Hadoop uses java setWritable/setReadable etc commands which dont work in some cases for Windows.