pub fn set_permissions<P: AsRef<Path>>(path: P, perm: Permissions) -> Result<()>Expand description
Changes the permissions found on a file or a directory.
§Platform-specific behavior
This function currently corresponds to the chmod function on Unix
and the SetFileAttributes function on Windows.
Note that, this may change in the future.
§Symlinks
On UNIX-like systems, this function will update the permission bits of the file pointed to by the symlink.
Note that this behavior can lead to privalage escalation vulnerabilites, where the ability to create a symlink in one directory allows you to cause the permissions of another file or directory to be modified.
For this reason, using this function with symlinks should be avoided. When possible, permissions should be set at creation time instead.
§Rationale
POSIX does not specify an lchmod function,
and symlinks can be followed regardless of what permission bits are set.
§Errors
This function will return an error in the following situations, but is not limited to just these cases:
pathdoes not exist.- The user lacks the permission to change attributes of the file.