#!/usr/bin/perl #Fichero de salida open (OF,"> COutput"); sub print2 { print OF @_; print @_; } sub arrayscan { my $arr1=$_[0]; my $arr2=$_[1]; my $pre=$_[2]; TRALA: foreach $j (@{$arr1}) { foreach $i (@{$arr2}) { if ($j eq $i) { next TRALA; } } print2 "$pre" . "$j"; } } print "Escaneando procesos\n"; @procesos=`ps -u root | sed -e 's/ */#/g' |cut -f6- -d#|tr "#" " "|sort|uniq`; open(FILE,"> process"); print FILE @procesos; close(FILE); print "Escaneando suids\n"; @suids=`find / -type f -perm -4000 -ls 2>/dev/null`; open(FILE,"> suids"); print FILE @suids; close(FILE); @oldprocesos=`cat process.list`; @oldsuids=`cat suids.list`; print2 "#" . "-" x 75 . "\n"; print2 "#Procesos Borrados desde el Ultimo Escaneo\n"; arrayscan(\@oldprocesos,\@procesos,"OLD-"); print2 "#Procesos aņadidos desde el Ultimo Escaneo\n"; arrayscan(\@procesos,\@oldprocesos,"NEW-"); print2 "#" . "-" x 75 . "\n"; print2 "#Suids Borrados desde el ultimo Escaneo\n"; arrayscan(\@oldsuids,\@suids,"OLD-"); print2 "#Suids Anyadidos desde el ultimo Escaneo\n"; arrayscan(\@suids,\@oldsuids,"NEW-"); rename "process","process.list"; rename "suids","suids.list"; close(OF);