I know this is an old post, but with Vim Version8 a function has been included with which you can change file permissions.
According to the version8.txt file:
setfperm() set the permissions of a file
This function can then be called via the "call" command in Vim.
This is done as follows:
:call setfperm("file name","permissions")
The structure of the "permissions" string takes the same form as described in the Vim documentation:
getfperm({fname}) getfperm()
The result is a String, which is the read, write, and execute
permissions of the given file {fname}.
If {fname} does not exist or its directory cannot be read, an
empty string is returned.
The result is of the form "rwxrwxrwx", where each group of
"rwx" flags represent, in turn, the permissions of the owner
of the file, the group the file belongs to, and other users.
If a user does not have a given permission the flag for this
is replaced with the string "-". Example:
:echo getfperm("/etc/passwd")
This will hopefully (from a security point of view) display
the string "rw-r--r--" or even "rw-------".
A minimal example:
:call setfperm("foo.txt","rwxrwxrwx")
This adds read, write and execute permissions to the "foo.txt" file in the current directory.