Rev 4011 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#! /usr/bin/perl######################################################################### Copyright (C) 1998-2013 Vix Technology, All rights reserved## Module name : faclscan.pl# Module type : Makefile system# Compiler(s) : Perl# Environment(s):## Description : Scan dpkg_archive for users with special access## Usage:##......................................................................#require 5.008_002;use strict;use warnings;use Pod::Usage;use Getopt::Long;my $dpkg_archive;my $dpkg_archive_len;my $file;my $owner;my $group;my @users;my $user;## Find dpkg_archive#$dpkg_archive = $ENV{GBE_DPKG} || die ("EnvVar GBE_DPKG not defined\n");$dpkg_archive =~ s~/+$~~;$dpkg_archive_len = length ($dpkg_archive) + 1;## Ensure its a directory#die ("GBE_DPKG ($dpkg_archive) is not a directory\n") unless ( -d $dpkg_archive );## Scan package archive#open (DIR ,"getfacl -p $dpkg_archive/* |") || die ("getfacl failed: $!\n");while ( <DIR> ){$_ =~ s~\s*$~~;#print "$_\n";if ( m~^#\s+file:\s+(.*)~ ) {displayUsers();$file = substr($1, $dpkg_archive_len);}$owner = $1if ( m~^#\s+owner:\s+(.*)~ );$group = $1if ( m~^#\s+group:\s+(.*)~ );if ( m~^user:(.*?):(.*)~ ) {$user = $1;if ( $user ne '' && $user ne 'pkgadm' ) {push @users, $user;}}}close DIR;displayUsers();#-------------------------------------------------------------------------------# Function : Display a user entry if it is not as expected## Description :## Inputs :## Returns :#sub displayUsers{return unless ( defined $file );if ( @users ) {printf("%-30s:%s\n", $file , join(' ', sort @users));}if ( $owner ne 'pkgadm' ) {print "$file : OWNER: $owner\n";}if ( $group ne 'ccperdev' ) {print "$file : GROUP: $group\n";}$file = undef;$owner = undef;$group = undef;@users = ();}