Open
Description
I'm seeing three different behaviors from fchmodat
on a symlink when using AT_SYMLINK_NOFOLLOW
:
- The flag is completely ignored because the kernel doesn't implement it; the mode of the referent is changed (this was fixed in early 2015, so this is the case prior to API 23 devices).
- Symlink permissions are not supported and
ENOSUP
is set - Symlink permissions are supported and the symlink mode is set appropriately
Both 2 and 3 provide a conformant implementation of std::filesystem::permissions(symlink_path, p perms, std::filesystem::perm_options::nofollow)
, but 1 does not. The permissions of the symlink need to either be set or an error needs to be returned.