Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# chown

Perl 5 version 16.0 documentation
Go to top
Show recent pages
Recently read

# chown

Perl functions A-Z | Perl functions by category | The 'perlfunc' manpage

- chown LIST

  Changes the owner (and group) of a list of files. The first two elements of the list must be the numeric uid and gid, in that order. A value of -1 in either position is interpreted by most systems to leave that value unchanged. Returns the number of files successfully changed.

          $cnt = chown $uid, $gid, 'foo', 'bar';    chown $uid, $gid, @filenames;

  On systems that support fchown(2), you may pass filehandles among the files. On systems that don't support fchown(2), passing filehandles raises an exception. Filehandles must be passed as globs or glob references to be recognized; barewords are considered filenames.

  Here's an example that looks up nonnumeric uids in the passwd file:

          print "User: ";    chomp($user = <STDIN>);    print "Files: ";    chomp($pattern = <STDIN>);    ($login,$pass,$uid,$gid) = getpwnam($user)        or die "$user not in passwd file";    @ary = glob($pattern);  # expand filenames    chown $uid, $gid, @ary;

  On most systems, you are not allowed to change the ownership of the file unless you're the superuser, although you should be able to change the group to any of your secondary groups. On insecure systems, these restrictions may be relaxed, but this is not a portable assumption. On POSIX systems, you can detect this condition this way:

          use POSIX qw(sysconf _PC_CHOWN_RESTRICTED);    $can_chown_giveaway = not sysconf(_PC_CHOWN_RESTRICTED);

  Portability issues: chmod in perlport.