package driver import ( "os" "golang.org/x/sys/unix" ) // Lchmod changes the mode of a file not following symlinks. func (d *driver) Lchmod(path string, mode os.FileMode) error { // On Linux, file mode is not supported for symlinks, // and fchmodat() does not support AT_SYMLINK_NOFOLLOW, // so symlinks need to be skipped entirely. if st, err := os.Stat(path); err == nil && st.Mode()&os.ModeSymlink != 0 { return nil } return unix.Fchmodat(unix.AT_FDCWD, path, uint32(mode), 0) }