Steven's Notebook

Look Ma - No Hands!

Setting Unix File Ownership from Perl

Here’s a little bit of Perl code from a module we use. These functions are used by our cron-driven Perl scripts to (re-)set file ownership after they’ve
finished working their magic. They’re probably nowhere near perfect
and I welcome any suggestions you may have to improve upon them.

Feel free to use this code in your own project but assume all
responsability for it if you do.

sub ChownNameGroup {
# given a username and group, change the ownership of files
# example usage:
#
#    ChownNameGroup ("fred", "app", "fredsfile.html")
#       or print STDERR "Warning - Unable to change owner for $filenamen";
#
my ($user, $group, @files) = @_;
return chown ((getpwnam($user))[2],(getgrnam($group))[2],@files) == @files;
}
sub ChownByName {
# given a username, look up the uid & default gid
# and change ownership of files
#
# example usage:
#
#    ChownByName("fred", glob("*.c"))  or die "$0: can't chown @files: $!";
#
#    ChownByName("root", $filename)
#       or print STDERR "Warning - Unable to change owner for $filenamen";
#
my ($user, @files) = @_;
return chown ((getpwnam($user))[2,3], @files) == @files;
}

enjoy.

Steven's Notebook © 2000-2018 Frontier Theme