[ Avaa Bypassed ]




Upload:

Command:

www-data@18.220.9.72: ~ $
# htaccess-lib.pl
# Common functions for the htaccess and htpasswd file management module

use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%config, %module_info, @remote_user_info, $user_module_config_directory,
     $remote_user, $module_config_directory);
BEGIN { push(@INC, ".."); };
use WebminCore;
&init_config();
do 'htpasswd-file-lib.pl';

our ($default_dir, @accessdirs, $directories_file, $apachemod,
     $can_htpasswd, $can_htgroups, $can_create, $can_sync, %access);
our ($old_uid, $old_gid);
if ($module_info{'usermin'}) {
	# Allowed directories are in module configuration
	&switch_to_remote_user();
	&create_user_config_dirs();
	$default_dir = &resolve_links($remote_user_info[7]);
	push(@accessdirs, $default_dir) if ($config{'home'});
	foreach my $d (split(/\t+/, $config{'dirs'})) {
		push(@accessdirs, $d =~ /^\// ? $d : "$default_dir/$d");
		}
	@accessdirs = &expand_root_variables(@accessdirs);
	$directories_file = "$user_module_config_directory/directories";
	$apachemod = "htaccess";
	$can_htpasswd = $config{'can_htpasswd'};
	$can_htgroups = $config{'can_htgroups'};
	$can_create = !$config{'nocreate'};
	}
else {
	# Allowed directories come from ACL
	%access = &get_module_acl();
	my @uinfo;
	if (&supports_users() && $access{'home'} && $remote_user) {
		# Include user home
		@uinfo = getpwnam($remote_user);
		if (scalar(@uinfo)) {
			push(@accessdirs, &resolve_links($uinfo[7]));
			}
		}
	foreach my $d (split(/\t+/, $access{'dirs'})) {
		push(@accessdirs, $d =~ /^\// || !@uinfo ?
			$d : &resolve_links("$uinfo[7]/$d"));
		}
	$directories_file = "$module_config_directory/directories";
	$directories_file .= ".".$remote_user if ($access{'userdirs'});
	$apachemod = "apache";
	$can_htpasswd = 1;
	$can_htgroups = 1;
	$default_dir = $accessdirs[0];
	$can_sync = $access{'sync'};
	$can_create = !$access{'uonly'};
	}

# list_directories([even-if-missing])
# Returns a list of protected directories known to this module, and the
# users file, encryption mode, sync mode and groups file for each
sub list_directories
{
my @rv;
my $fh;
open($fh, "<".$directories_file) || return ();
while(<$fh>) {
	s/\r|\n//g;
	my @dir = split(/\t+/, $_);
	next if (!@dir);
	if ($_[0] || -d $dir[0] && -r "$dir[0]/$config{'htaccess'}") {
		push(@rv, \@dir);
		}
	}
close($fh);
return @rv;
}

# save_directories(&dirs)
# Save the list of known directories, which must be in the same format as
# returned by list_directories
sub save_directories
{
my $d;
my $fh = "DIRS";
&open_tempfile($fh, ">$directories_file");
foreach $d (@{$_[0]}) {
	my @safed = map { defined($_) ? $_ : "" } @$d;
	&print_tempfile($fh, join("\t", @safed),"\n");
	}
&close_tempfile($fh);
}

# can_access_dir(dir)
# Returns 1 if files can be created under some directory, 0 if not
sub can_access_dir
{
return 1 if (!$ENV{'GATEWAY_INTERFACE'});
my $d;
foreach $d (@accessdirs) {
	return 1 if (&is_under_directory(&resolve_links($d),
					 &resolve_links($_[0])));
	}
return 0;
}

# switch_user()
# Switch to the Unix user that files are accessed as.
# No need to do anything for Usermin, because the switch was done above.
sub switch_user
{
if (!$module_info{'usermin'} &&
    $access{'user'} ne 'root' && !defined($old_uid) && &supports_users()) {
	my @uinfo = getpwnam($access{'user'} eq "*" ? $remote_user
						       : $access{'user'});
	$old_uid = $>;
	$old_gid = $);
	$) = "$uinfo[3] $uinfo[3]";
	$> = $uinfo[2];
	}
}

sub switch_back
{
if (defined($old_uid)) {
	$> = $old_uid;
	$) = $old_gid;
	$old_uid = $old_gid = undef;
	}
}

# expand_root_variables(dir, ...)
# Replaces $USER and $HOME in a list of dirs
sub expand_root_variables
{
my @rv;
my %hash = ( 'user' => $remote_user_info[0],
		'home' => $remote_user_info[7],
		'uid' => $remote_user_info[2],
		'gid' => $remote_user_info[3] );
my @ginfo = getgrgid($remote_user_info[3]);
$hash{'group'} = $ginfo[0];
foreach my $dir (@_) {
	push(@rv, &substitute_template($dir, \%hash));
	}
return @rv;
}

1;


Filemanager

Name Type Size Permission Actions
images Folder 0755
lang Folder 0755
CHANGELOG File 1.76 KB 0644
acl_security.pl File 1.19 KB 0755
cgi_args.pl File 838 B 0755
config File 104 B 0644
config-windows File 104 B 0644
config.info File 404 B 0644
config.info.bg File 736 B 0644
config.info.ca File 464 B 0644
config.info.cs File 438 B 0644
config.info.de File 520 B 0644
config.info.es File 377 B 0644
config.info.fi File 0 B 0644
config.info.fr File 510 B 0644
config.info.hu File 378 B 0644
config.info.ja File 521 B 0644
config.info.ko File 387 B 0644
config.info.ms File 0 B 0644
config.info.nl File 451 B 0644
config.info.no File 435 B 0644
config.info.tr File 352 B 0644
config.info.zh_TW File 169 B 0644
defaultacl File 32 B 0644
delete.cgi File 1.17 KB 0755
edit_dir.cgi File 4.02 KB 0755
edit_group.cgi File 1.3 KB 0755
edit_user.cgi File 1.58 KB 0755
htaccess-lib.pl File 3.88 KB 0755
htpasswd-file-lib.pl File 6.27 KB 0755
index.cgi File 4.49 KB 0755
log_parser.pl File 475 B 0755
md5-lib.pl File 7.58 KB 0755
module.info File 215 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 149 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 197 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 210 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 224 B 0644
module.info.ca File 126 B 0644
module.info.ca.auto File 24 B 0644
module.info.cs File 36 B 0644
module.info.cs.auto File 125 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 142 B 0644
module.info.de File 146 B 0644
module.info.de.auto File 25 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 314 B 0644
module.info.es File 35 B 0644
module.info.es.auto File 127 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 150 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 249 B 0644
module.info.fi File 33 B 0644
module.info.fi.auto File 117 B 0644
module.info.fr File 36 B 0644
module.info.fr.auto File 135 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 197 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 155 B 0644
module.info.hu File 40 B 0644
module.info.hu.auto File 140 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 142 B 0644
module.info.ja File 45 B 0644
module.info.ja.auto File 161 B 0644
module.info.ko File 32 B 0644
module.info.ko.auto File 136 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 178 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 170 B 0644
module.info.ms File 119 B 0644
module.info.ms.auto File 22 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 152 B 0644
module.info.nl File 35 B 0644
module.info.nl.auto File 122 B 0644
module.info.no File 33 B 0644
module.info.no.auto File 126 B 0644
module.info.pl File 0 B 0644
module.info.pl.auto File 149 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 158 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 167 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 155 B 0644
module.info.ru File 0 B 0644
module.info.ru.auto File 208 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 156 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 154 B 0644
module.info.sv File 0 B 0644
module.info.sv.auto File 161 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 274 B 0644
module.info.tr File 0 B 0644
module.info.tr.auto File 160 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 208 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 220 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 180 B 0644
module.info.zh File 0 B 0644
module.info.zh.auto File 128 B 0644
module.info.zh_TW File 30 B 0644
module.info.zh_TW.auto File 101 B 0644
prefs.info File 28 B 0644
save_dir.cgi File 8.16 KB 0755
save_group.cgi File 1.28 KB 0755
save_user.cgi File 1.69 KB 0755
search.cgi File 1.81 KB 0755
useradmin_update.pl File 1.75 KB 0755