You can access outside files through the DrvFS
/mnt/c corresponds to your
C: drive, and has the same layout. All files that your user can access are available through this filesystem, and the permissions are translated across somewhat intuitively:
In order to give the user a hint about the permissions they have on files, DrvFs checks the effective permissions a user has on a file and converts those to read/write/execute bits, which can be seen for example when running “ls -l”. However, there is not always a one-to-one mapping; for example, Windows has separate permissions for the ability to create files or subdirectories in a directory. If the user has either of these permissions, DrvFs will report write access on the directory, while in fact some operations may still fail with access denied.
It is possible that these can be somewhat different than expected, particularly if you have custom ACLs applied, or are accessing files through an elevated/non-elevated terminal (for example, Windows has more fine-grained creation permissions than the conventional Unix octal permissions, and WSL doesn't map onto Linux ACLs). The only permission you can usefully change is write (
w) access, which affects the read-only flag on the NTFS file.
You can launch Windows programs from Bash provided that you are using at least version 14951, which has been available through the Insider programme since last year and will be in the next Windows release. You just need to find and execute the relevant executable as normal; you must be inside a DrvFS path to do so.
It's possible to combine these together:
$ export PATH=$PATH:/mnt/c/Windows/System32
$ cd /mnt/c/Users/you
$ notepad.exe file.txt
You can't (yet, perhaps ever) have Windows executables read from Linux files. Starting the executable from WSL will just fail, but trying to access the file a different way will just make everything break.