X7ROOT File Manager
Current Path:
/usr/libexec/usermin
usr
/
libexec
/
usermin
/
📁
..
📁
JSON
📄
LICENCE
(1.48 KB)
📄
LICENCE.ja
(1.62 KB)
📄
README
(1.93 KB)
📄
WebminCore.pm
(7.65 KB)
📁
WebminUI
📄
acl_security.pl
(2.89 KB)
📁
at
📁
authentic-theme
📁
blue-theme
📁
changepass
📁
chfn
📄
chooser.cgi
(7.21 KB)
📁
commands
📄
config-aix
(227 B)
📄
config-cobalt-linux
(264 B)
📄
config-coherent-linux
(264 B)
📄
config-corel-linux
(264 B)
📄
config-debian-linux
(264 B)
📄
config-freebsd
(256 B)
📄
config-generic-linux
(264 B)
📄
config-gentoo-linux
(264 B)
📄
config-hpux
(243 B)
📄
config-irix
(284 B)
📄
config-lib.pl
(10.83 KB)
📄
config-macos
(260 B)
📄
config-mandrake-linux
(278 B)
📄
config-msc-linux
(264 B)
📄
config-netbsd
(283 B)
📄
config-open-linux
(264 B)
📄
config-openbsd
(241 B)
📄
config-openmamba-linux
(264 B)
📄
config-openserver
(236 B)
📄
config-osf1
(266 B)
📄
config-redhat-linux
(264 B)
📄
config-slackware-linux
(280 B)
📄
config-sol-linux
(264 B)
📄
config-solaris
(417 B)
📄
config-suse-linux
(264 B)
📄
config-trustix-linux
(264 B)
📄
config-turbo-linux
(264 B)
📄
config-united-linux
(264 B)
📄
config-unixware
(286 B)
📄
copyconfig.pl
(4.33 KB)
📁
cron
📁
cshrc
📄
date_chooser.cgi
(2.19 KB)
📄
defaultacl
(98 B)
📄
defaulttheme
(16 B)
📄
entities_map.txt
(1.47 KB)
📄
favicon.ico
(14.73 KB)
📄
feedback.cgi
(6.37 KB)
📄
feedback_form.cgi
(3.45 KB)
📁
fetchmail
📁
file
📁
filemin
📁
filter
📁
forward
📁
gnupg
📁
gray-theme
📄
group_chooser.cgi
(7.36 KB)
📄
help.cgi
(2.06 KB)
📁
htaccess
📁
htaccess-htpasswd
📁
images
📄
index.cgi
(5.55 KB)
📄
install-module.pl
(1.27 KB)
📄
install-type
(4 B)
📄
javascript-lib.pl
(14.69 KB)
📁
lang
📄
lang_list.txt
(3.41 KB)
📁
language
📁
mailbox
📁
mailcap
📄
maketemp.pl
(424 B)
📁
man
📄
mime.types
(12.42 KB)
📄
miniserv.pem
(974 B)
📄
miniserv.pl
(171.07 KB)
📁
mysql
📄
newmods.pl
(1.25 KB)
📄
os_list.txt
(33.58 KB)
📄
oschooser.pl
(4.55 KB)
📄
pam_login.cgi
(2.65 KB)
📄
password_change.cgi
(7 KB)
📄
password_form.cgi
(1.3 KB)
📄
perlpath.pl
(571 B)
📁
plan
📁
postgresql
📁
proc
📁
procmail
📁
quota
📄
robots.txt
(26 B)
📄
rpm-name
(8 B)
📁
schedule
📄
session_login.cgi
(3.35 KB)
📄
setup.sh
(24.78 KB)
📁
shell
📁
spam
📁
ssh
📄
switch_user.cgi
(404 B)
📁
telnet
📁
theme
📄
thirdparty.pl
(1.73 KB)
📁
tunnel
📁
twofactor
📄
uconfig.cgi
(1.39 KB)
📄
uconfig_save.cgi
(1.46 KB)
📄
ui-lib.pl
(82.48 KB)
📁
ulang
📄
update-from-repo.sh
(14.8 KB)
📄
updateboot.pl
(1.89 KB)
📁
updown
📄
uptracker.cgi
(2.88 KB)
📄
user_chooser.cgi
(7.29 KB)
📄
usermin-debian-pam
(104 B)
📄
usermin-init
(1.88 KB)
📄
usermin-pam
(101 B)
📄
usermin-pam-osx
(243 B)
📄
usermin-systemd
(352 B)
📁
usermount
📄
version
(6 B)
📄
web-lib-funcs.pl
(328.14 KB)
📄
web-lib.pl
(907 B)
📄
webmin-search-lib.pl
(8.93 KB)
📄
webmin_search.cgi
(2.63 KB)
Editing: copyconfig.pl
#!/usr/bin/perl # copyconfig.pl # Copy the appropriate config file for each module into the webmin config # directory. If it is already there, merge in new directives. Called with # <osname> <osversion> <install dir> <config dir> <module>+ @ARGV >= 4 || die "usage: copyconfig.pl <os>[/real-os] <version>[/real-version] <webmin-dir> <config-dir> [module ...]"; $os = $ARGV[0]; $ver = $ARGV[1]; $wadir = $ARGV[2]; $confdir = $ARGV[3]; ($os, $real_os) = split(/\//, $os); ($ver, $real_ver) = split(/\//, $ver); $real_os =~ s/ /-/g; $real_ver =~ s/ /-/g; # Find all clones opendir(DIR, $wadir); foreach $f (readdir(DIR)) { if (readlink("$wadir/$f")) { @st = stat("$wadir/$f"); push(@{$clone{$st[1]}}, $f); } } closedir(DIR); # For each module, copy its config to itself and all clones @mods = @ARGV[4..$#ARGV]; foreach $m (@mods) { # Find any range-number config files. Search first by real OS type # (ie Ubuntu 6.1), then by internal OS code (ie. debian-linux 3.1) $srcdir = "$wadir/$m"; $rangefile = $real_rangefile = undef; foreach $ov ([ $real_os, $real_ver, \$real_rangefile ], [ $os, $ver, \$rangefile ]) { my ($o, $v, $rf) = @$ov; opendir(DIR, $srcdir); while($f = readdir(DIR)) { if ($f =~ /^config\-\Q$o\E\-([0-9\.]+)\-([0-9\.]+)$/ && $v >= $1 && $v <= $2) { $$rf = "$srcdir/$f"; } elsif ($f =~ /^config\-\Q$o\E\-([0-9\.]+)\-(\*|ALL)$/ && $v >= $1) { $$rf = "$srcdir/$f"; } elsif ($f =~ /^config\-\Q$o\E\-(\*|ALL)\-([0-9\.]+)$/ && $v <= $2) { $$rf = "$srcdir/$f"; } } closedir(DIR); } # Find the best-matching config file. Search first by real OS type, # then by internal OS code # Check for real OS match by name and version, version range, or # name only if (-r "$srcdir/config-$real_os-$real_ver") { $conf = "$srcdir/config-$real_os-$real_ver"; } elsif ($real_rangefile) { $conf = $real_rangefile; } elsif (-r "$srcdir/config-$real_os") { $conf = "$srcdir/config-$real_os"; } # Check for OS code match by name and version, version range, or name elsif (-r "$srcdir/config-$os-$ver") { $conf = "$srcdir/config-$os-$ver"; } elsif ($rangefile) { $conf = $rangefile; } elsif (-r "$srcdir/config-$os") { $conf = "$srcdir/config-$os"; } # Check for config for an entire OS class, like *-linux elsif ($os =~ /^(\S+)-(\S+)$/ && -r "$srcdir/config-ALL-$2") { $conf = "$srcdir/config-ALL-$2"; } elsif ($os =~ /^(\S+)-(\S+)$/ && -r "$srcdir/config-*-$2") { $conf = "$srcdir/config-*-$2"; } # Use default config file, if it exists elsif (-r "$srcdir/config") { $conf = "$srcdir/config"; } else { $conf = "/dev/null"; } @st = stat($srcdir); @copyto = ( @{$clone{$st[1]}}, $m ); foreach $c (@copyto) { if (!-d "$confdir/$c") { # New module .. need to create config dir mkdir("$confdir/$c", 0755); push(@newmods, $c); } undef(%oldconf); undef(%newconf); &read_file("$confdir/$c/config", \%oldconf); &read_file($conf, \%newconf); foreach $k (keys %oldconf) { $newconf{$k} = $oldconf{$k}; } &write_file("$confdir/$c/config", \%newconf); } } print join(" ", @newmods),"\n"; # read_file(file, &hash, [&order], [lowercase], [split-char]) # Fill the given hash reference with name=value pairs from a file. sub read_file { my ($file, $hash, $order, $lowercase, $split) = @_; $split = "=" if (!defined($split)); open(ARFILE, $file) || return 0; local $_; while(<ARFILE>) { s/\r|\n//g; my $cmt = index($_, "#"); my $eq = index($_, $split); if ($cmt != 0 && $eq >= 0) { my $n = substr($_, 0, $eq); my $v = substr($_, $eq+1); chomp($v); $hash->{$lowercase ? lc($n) : $n} = $v; push(@$order, $n) if ($order); } } close(ARFILE); return 1; } # write_file(file, &data-hash, [join-char]) # Write out the contents of a hash as name=value lines. sub write_file { my ($file, $data_hash, $join_char) = @_; my (%old, @order); my $join = defined($join_char) ? $join_char : "="; &read_file($file, \%old, \@order); open(ARFILE, ">$file") || die "open of $file failed : $!"; my %done; foreach $k (@order) { if (exists($data_hash->{$k}) && !$done{$k}++) { (print ARFILE $k,$join,$data_hash->{$k},"\n") || die "write to $file failed : $!"; } } foreach $k (keys %{$data_hash}) { if (!exists($old{$k}) && !$done{$k}++) { (print ARFILE $k,$join,$data_hash->{$k},"\n") || die "write to $file failed : $!"; } } close(ARFILE); }
Upload File
Create Folder