La solucion:
Crear un archivo .pl y ejecutarlo desde root con el comando
perl archivo.pl -u usuario
El usuario deberá ser el de la cuenta afectada.
Ejemplo:
perl limpiar.pl -u marco
El código para meter crear el archivo .pl debe ser el siguiente:
Código:
#!/usr/bin/perl
use strict;
use File::Find;
use Fcntl ':flock';
use Getopt::Long;
my $user = "";
my $options_okay = GetOptions( 'u=s' => \$user );
die("No User") if !$user;
my $root_dir = "/home/$user/public_html";
find( sub {
my $file = $File::Find::name;
return unless -f $file;
return unless ($file =~ /\.(htm|html|php|tpl)/i );
system("chown $user $file");
open my $FILE, '<', $file or die $!;
flock($FILE,LOCK_SH);
my $data = do{ local $/; <$FILE> };
close $FILE;
if( $data =~ s!</html>.*?<html>.*</html>(\s*</body> </body>)?.*?$!</html>!msi ){
open my $FILE, '>', $file or die $!;
flock($FILE,LOCK_EX);
print {$FILE} $data;
close $FILE;
print "$file - cleaned\n";
}
},
$root_dir);
Después de esto, se recomienda cambiar la contraseña de root y si fuera necesario el puerto de acceso ssh.
Siempre es recomendable tener copias de seguridad de las cuentas de los clientes, por si no se repara al 100%
Otra cosa, también hay que actualizar el panel de control del servidor.