chown LIST
Changes the owner (and group) of a list of files. The first twoelements of the list must be the numeric uid and gid, in thatorder. A value of -1 in either position is interpreted by mostsystems to leave that value unchanged. Returns the number of filessuccessfully changed.
- $cnt = chown $uid, $gid, 'foo', 'bar';
- chown $uid, $gid, @filenames;
On systems that support fchown(2), you may pass filehandles among thefiles. On systems that don't support fchown(2), passing filehandles raisesan exception. Filehandles must be passed as globs or glob references to berecognized; 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 thefile unless you're the superuser, although you should be able to changethe group to any of your secondary groups. On insecure systems, theserestrictions 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.