---
name: "File::lchown"
section: "3pm"
platform: "linux"
package: "libfile-lchown-perl"
version: "0.02-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/File::lchown"
---

# File::lchown(3pm)

modify attributes of symlinks without dereferencing them

## NAME

"File::lchown" - modify attributes of symlinks without dereferencing them

## SYNOPSIS

```
 use File::lchown qw( lchown lutimes );
 lchown $uid, $gid, $linkpath or die "Cannot lchown() - $!";
 lutimes $atime, $mtime, $linkpath or die "Cannot lutimes() - $!";
```

## DESCRIPTION

The regular `"chown"` system call will dereference a symlink and apply ownership changes to the file at which it points. Some OSes provide system calls that do not dereference a symlink but instead apply their changes directly to the named path, even if that path is a symlink (in much the same way that `"lstat"` will return attributes of a symlink rather than the file at which it points).

## FUNCTIONS

### $count = lchown $uid, $gid, @paths

Set the new user or group ownership of the specified paths, without dereferencing any symlinks. Passing the value `-1` as either the `$uid` or `$gid` will leave that attribute unchanged. Returns the number of files successfully changed.

### $count = lutimes $atime, $mtime, @paths

Set the access and modification times on the specified paths, without dereferencing any symlinks. Passing `"undef"` as both `$atime` and `$mtime` will update the times to the current system time.

Note that for both `"lchown"` and `"lutimes"`, if more than one path is given, if later paths succeed after earlier failures, then the value of `$!` will not be reliable to indicate the nature of the failure. If you wish to use `$!` to report on failures, make sure only to pass one path at a time.

## TODO

- •

  Implement sub-second precision on `"lutimes"`, most likely by taking floats or two-element ARRAY refs, similar to `"Time::HiRes"` uses.

## SEE ALSO

- •

  `lchown(2)` - change ownership of a file

- •

  `lutimes(2)` - change file timestamps

## AUTHOR

Paul Evans \<leonerd@leonerd.org.uk\>
