Sysadm-Install

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

        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 )