Sysadm-Install
view release on metacpan or search on metacpan
Read the $src file/directory's owner uid and group gid and apply it
to $dst.
For example: copy uid/gid of the containing directory to a file
therein:
use File::Basename;
owner_cp( dirname($file), $file );
Usually requires root privileges, just like chown does.
"$perms = perm_get($filename)"
Read the $filename's user permissions and owner/group. Returns an
array ref to be used later when calling "perm_set($filename,
$perms)".
"perm_set($filename, $perms)"
Set file permissions and owner of $filename according to $perms,
which was previously acquired by calling "perm_get($filename)".
lib/Sysadm/Install.pm view on Meta::CPAN
Read the C<$src> file/directory's owner uid and group gid and apply
it to $dst.
For example: copy uid/gid of the containing directory to a file
therein:
use File::Basename;
owner_cp( dirname($file), $file );
Usually requires root privileges, just like chown does.
=cut
######################################
sub owner_cp {
######################################
my($src, @dst) = @_;
local $Log::Log4perl::caller_depth =
$Log::Log4perl::caller_depth + 1;
lib/Sysadm/Install.pm view on Meta::CPAN
LOGCROAK("usage: owner_cp src dst ...") if @_ < 2;
my($uid, $gid) = (stat($src))[4,5];
if(!defined $uid or !defined $gid ) {
LOGCROAK("stat of $src failed: $!");
return undef;
}
if(!chown $uid, $gid, @dst ) {
LOGCROAK("chown of ", join(" ", @dst), " failed: $!");
return undef;
}
return 1;
}
=pod
=item C<$perms = perm_get($filename)>
lib/Sysadm/Install.pm view on Meta::CPAN
######################################
sub perm_set {
######################################
my($filename, $perms) = @_;
local $Log::Log4perl::caller_depth =
$Log::Log4perl::caller_depth + 1;
_confirm "perm_set $filename (@$perms)" or return 1;
chown($perms->[1], $perms->[2], $filename) or
LOGCROAK("Cannot chown $filename ($!)");
chmod($perms->[0] & 07777, $filename) or
LOGCROAK("Cannot chmod $filename ($!)");
}
=pod
=item C<sysrun($cmd)>
Run a shell command via C<system()> and die() if it fails. Also
( run in 0.475 second using v1.01-cache-2.11-cpan-5511b514fd6 )