[ Avaa Bypassed ]




Upload:

Command:

www-data@3.15.17.212: ~ $
# proc-lib.pl
# Functions for managing processes

BEGIN { push(@INC, ".."); };
use WebminCore;
use POSIX;
use Config;

&init_config();
if ($module_info{'usermin'} && !$ENV{'FOREIGN_MODULE_NAME'}) {
	&switch_to_remote_user();
	}
do "$config{ps_style}-lib.pl";
if ($module_info{'usermin'}) {
	%access = ( 'edit' => 1,
		    'run' => 1,
		    'users' => 'x' );
	$no_module_config = 1;
	$user_processes_only = 1;
	$index_file = "$user_module_config_directory/index";
	}
else {
	%access = &get_module_acl();
	map { $hide{$_}++ } split(/\s+/, $access{'hide'});
	$index_file = "$module_config_directory/index";
	$user_processes_only = $access{'only'};
	if (!defined($access{'users'})) {
		$access{'users'} = $access{'uid'} < 0 ? "x" :
				   $access{'uid'} == 0 ? "*" :
					getpwuid($access{'uid'});
		}
	}
if ($access{'run'}) {
	if ($access{'users'} eq "*") {
		$default_run_user = "root";
		}
	elsif (&can_edit_process($remote_user)) {
		$default_run_user = $remote_user;
		}
	else {
		local @canu = split(/\s+/, $access{'users'});
		if ($canu[0] =~ /^\@(.*)$/) {
			$default_run_user = undef;
			}
		elsif ($can[0] =~ /^(\d+)\-(\d+)$/) {
			$default_run_user = getpwuid($1);
			}
		else {
			$default_run_user = $canu[0];
			}
		}
	}

sub process_info
{
local @plist = &list_processes($_[0]);
return @plist ? %{$plist[0]} : ();
}

# index_links(current)
sub index_links
{
local(%linkname, $l);
print "<b>$text{'index_display'} : </b>\n";
local @links;
foreach $l ("tree", "user", "size", "cpu", ($has_zone ? ("zone") : ()),
	    "search", "run") {
	next if ($l eq "run" && !$access{'run'});
	my $link = ( $l ne $_[0] ? &ui_link("index_".$l.".cgi", $text{"index_$l"}) : "<b>".$text{"index_$l"}."</b>" );
	push(@links, $link);
	}
print &ui_links_row(\@links);
print "<p>\n";
&create_user_config_dirs();
open(INDEX, ">$index_file");
$0 =~ /([^\/]+)$/;
print INDEX "$1?$in\n";
close(INDEX);
}

# cut_string(string, [length])
sub cut_string
{
local $len = $_[1] || $config{'cut_length'};
if ($len && length($_[0]) > $len) {
	return substr($_[0], 0, $len)." ...";
	}
return $_[0];
}

# switch_acl_uid()
sub switch_acl_uid
{
return if ($module_info{'usermin'});	# already switched!
if ($access{'uid'} < 0) {
	local @u = getpwnam($remote_user);
	@u || &error("Failed to find user $remote_user");
	&switch_to_unix_user(\@u);
	}
elsif ($access{'uid'}) {
	local @u = getpwuid($access{'uid'});
	&switch_to_unix_user(\@u);
	}
}

# safe_process_exec(command, uid, gid, handle, [input], [fixtags], [bsmode],
#		    [timeout], [safe])
# Executes the given command as the given user/group and writes all output
# to the given file handle. Finishes when there is no more output or the
# process stops running. Returns the number of bytes read.
sub safe_process_exec
{
if (&is_readonly_mode() && !$_[8]) {
	# Veto command in readonly mode
	return 0;
	}
&webmin_debug_log('CMD', "cmd=$_[0] uid=$_[1] gid=$_[2]")
	if ($gconfig{'debug_what_cmd'});

if ($gconfig{'os_type'} eq 'windows') {
	# For Windows, just run the command and read output
	local $temp = &transname();
	open(TEMP, ">$temp");
	print TEMP $_[4];
	close(TEMP);
	&open_execute_command(OUT, "$_[0] <".quotemeta($temp)." 2>&1", 1);
	local $fh = $_[3];
	while(<OUT>) {
		if ($_[5]) {
			print $fh &html_escape($_);
			}
		else {
			print $fh $_;
			}
		}
	close(OUT);
	return $got;
	}
else {
	# setup pipes and fork the process
	local $chld = $SIG{'CHLD'};
	$SIG{'CHLD'} = \&safe_exec_reaper;
	pipe(OUTr, OUTw);
	pipe(INr, INw);
	local $pid = fork();
	if (!$pid) {
		#setsid();
		untie(*STDIN);
		untie(*STDOUT);
		untie(*STDERR);
		open(STDIN, "<&INr");
		open(STDOUT, ">&OUTw");
		open(STDERR, ">&OUTw");
		$| = 1;
		close(OUTr); close(INw);

		if ($_[1]) {
			if (defined($_[2])) {
				# switch to given UID and GID
				&switch_to_unix_user(
					[ undef, undef, $_[1], $_[2] ]);
				}
			else {
				# switch to UID and all GIDs
				local @u = getpwuid($_[1]);
				&switch_to_unix_user(\@u);
				}
			}

		# run the command
		delete($ENV{'FOREIGN_MODULE_NAME'});
		delete($ENV{'SCRIPT_NAME'});
		chdir(&tempname_dir()) if (&get_current_dir() =~ /$root_directory/);
		exec("/bin/sh", "-c", $_[0]);
		print "Exec failed : $!\n";
		exit 1;
		}
	close(OUTw); close(INr);

	# Feed input (if any)
	print INw $_[4];
	close(INw);

	# Read and show output
	local $fn = fileno(OUTr);
	local $got = 0;
	local $out = $_[3];
	local $line;
	local $start = time();
	$safe_process_exec_timeout = 0;
	while(1) {
		local ($rmask, $buf);
		vec($rmask, $fn, 1) = 1;
		local $sel = select($rmask, undef, undef, 1);
		if ($sel > 0 && vec($rmask, $fn, 1)) {
			# got something to read.. print it
			sysread(OUTr, $buf, 65536) || last;
			$got += length($buf);
			if ($_[5]) {
				$buf = &html_escape($buf);
				}
			if ($_[6]) {
				# Convert backspaces and returns and escapes
				$line .= $buf;
				while($line =~ s/^([^\n]*\n)//) {
					local $one = $1;
					while($one =~ s/.\010//) { }
					$one =~ s/\033[^m]+m//g;
					print $out $one;
					}
				}
			else {
				print $out $buf;
				}
			}
		elsif ($sel == 0) {
			# nothing to read. maybe the process is done, and a
			# subprocess is hanging things up
			last if (!kill(0, $pid));
			}
		if ($_[7] && time() - $start > $_[7]) {
			# Timeout exceeded - kill the process
			kill(KILL, $pid);
			$safe_process_exec_timeout = 1;
			}
		}
	close(OUTr);
	print $out $line;
	$SIG{'CHLD'} = $chld;
	return $got;
	}
}

# safe_process_exec_logged(..)
# Like safe_process_exec, but also logs the command
sub safe_process_exec_logged
{
&additional_log('exec', undef, $_[0]);
return &safe_process_exec(@_);
}

sub safe_exec_reaper
{
local $xp;
do {    local $oldexit = $?;
	$xp = waitpid(-1, WNOHANG);
	$? = $oldexit if ($? < 0);
	} while($xp > 0);
}

# pty_process_exec(command, [uid, gid], [force-binary-name])
# Starts the given command in a new pty and returns the pty filehandle and PID
sub pty_process_exec
{
local ($cmd, $uid, $gid, $binary) = @_;
if (&is_readonly_mode()) {
	# When in readonly mode, don't run the command
	$cmd = "/bin/true";
	}
&webmin_debug_log('CMD', "cmd=$cmd uid=$uid gid=$gid")
	if ($gconfig{'debug_what_cmd'});

eval "use IO::Pty";
if (!$@) {
	# Use the IO::Pty perl module if installed
	local $ptyfh = new IO::Pty;
	if (!$ptyfh) {
		&error("Failed to create new PTY with IO::Pty");
		}
	local $pid = fork();
	if (!$pid) {
		local $ttyfh = $ptyfh->slave();
		local $tty = $ptyfh->ttyname();
		if (defined(&close_controlling_pty)) {
			&close_controlling_pty();
			}
		setsid();	# create a new session group
		$ptyfh->make_slave_controlling_terminal();

		# Turn off echoing, if we can
		eval "use IO::Stty";
		if (!$@) {
			IO::Stty::stty($ttyfh, 'raw', '-echo');
			}

		close(STDIN); close(STDOUT); close(STDERR);
		untie(*STDIN); untie(*STDOUT); untie(*STDERR);
		if ($_[1]) {
			&switch_to_unix_user([ undef, undef, $_[1], $_[2] ]);
			}

		close($ptyfh);		# Used by other side only
		open(STDIN, "<&".fileno($ttyfh));
		open(STDOUT, ">&".fileno($ttyfh));
		open(STDERR, ">&".fileno($ttyfh));
		close($ttyfh);		# Already dup'd
		if ($binary) {
			my @args = &split_quoted_string($cmd);
			my $args0 = $args[0];
			$args[0] = $binary;
			exec { $args0 } @args;
			}
		else {
			exec($cmd);
			}
		print STDERR "Exec failed : $!\n";
		exit 1;
		}
	$ptyfh->close_slave();
	return ($ptyfh, $pid);
	}
else {
	# Need to create a PTY using built-in Webmin code
	local ($ptyfh, $ttyfh, $pty, $tty) = &get_new_pty();
	$tty || &error("Failed to create new PTY - try installing the IO::Tty Perl module");
	local $pid = fork();
	if (!$pid) {
		if (defined(&close_controlling_pty)) {
			&close_controlling_pty();
			}

		setsid();	# create a new session group

		if (!$ttyfh) {
			# Needs to be opened, as get_new_pty on linux cannot do
			# this so soon
			$ttyfh = "TTY";
			if ($_[1]) {
				chown($_[1], $_[2], $tty);
				}
			open($ttyfh, "+<$tty") || &error("Failed to open $tty : $!");
			}

		# Turn off echoing, if we can
		eval "use IO::Stty";
		if (!$@) {
			IO::Stty::stty($ttyfh, 'raw', '-echo');
			}

		if (defined(&open_controlling_pty)) {
			&open_controlling_pty($ptyfh, $ttyfh, $pty, $tty);
			}

		close(STDIN); close(STDOUT); close(STDERR);
		untie(*STDIN); untie(*STDOUT); untie(*STDERR);
		#setpgrp(0, $$);
		if ($_[1]) {
			&switch_to_unix_user([ undef, undef, $_[1], $_[2] ]);
			}

		open(STDIN, "<$tty");
		open(STDOUT, ">&$ttyfh");
		open(STDERR, ">&STDOUT");
		close($ptyfh);
		if ($binary) {
			my @args = &split_quoted_string($cmd);
			my $args0 = $args[0];
			$args[0] = $binary;
			exec { $args0 } @args;
			}
		else {
			exec($cmd);
			}
		print STDERR "Exec failed : $!\n";
		exit 1;
		}
	close($ttyfh);
	return ($ptyfh, $pid);
	}
}

# pty_process_exec_logged(..)
# Like pty_process_exec, but logs the command as well
sub pty_process_exec_logged
{
&additional_log('exec', undef, $_[0]);
return &pty_process_exec(@_);
}

# find_process(name)
# Returns an array of all processes matching some name
sub find_process
{
local $name = $_[0];
local @rv = grep { $_->{'args'} =~ /$name/ } &list_processes();
return wantarray ? @rv : $rv[0];
}

$has_lsof_command = &has_command("lsof");

# find_socket_processes(protocol, port)
# Returns all processes using some port and protocol
sub find_socket_processes
{
local @rv;
if ($has_lsof_command) {
	open(LSOF, "$has_lsof_command -i ".quotemeta("$_[0]:$_[1]")." |");
	while(<LSOF>) {
		if (/^(\S+)\s+(\d+)/) {
			push(@rv, $2);
			}
		}
	close(LSOF);
	}
return @rv;
}

# find_ip_processes(ip)
# Returns all processes using some IP address
sub find_ip_processes
{
local @rv;
if ($has_lsof_command) {
	open(LSOF, "$has_lsof_command -i ".quotemeta("\@$_[0]")." |");
	while(<LSOF>) {
		if (/^(\S+)\s+(\d+)/) {
			push(@rv, $2);
			}
		}
	close(LSOF);
	}
return @rv;
}

# find_all_process_sockets()
# Returns all network connections made by any process
sub find_all_process_sockets
{
local @rv;
if ($has_lsof_command) {
	open(LSOF, "$has_lsof_command -i tcp -i udp -n |");
	while(<LSOF>) {
		if (/^(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+).*(TCP|UDP)\s+(.*)/) {
			local $n = { 'cmd' => $1,
				     'pid' => $2,
				     'fd' => $4,
				     'type' => $5,
				     'proto' => $7 };
			local $m = $8;
			if ($m =~ /^([^:\s]+):([^:\s]+)\s+\(listen\)/i) {
				$n->{'lhost'} = $1;
				$n->{'lport'} = $2;
				$n->{'listen'} = 1;
				}
			elsif ($m =~ /^([^:\s]+):([^:\s]+)->([^:\s]+):([^:\s]+)\s+\((\S+)\)/) {
				$n->{'lhost'} = $1;
				$n->{'lport'} = $2;
				$n->{'rhost'} = $3;
				$n->{'rport'} = $4;
				$n->{'state'} = $5;
				}
			elsif ($m =~ /^([^:\s]+):([^:\s]+)/) {
				$n->{'lhost'} = $1;
				$n->{'lport'} = $2;
				}
			push(@rv, $n);
			}
		}
	close(LSOF);
	}
return @rv;
}

# find_process_sockets(pid)
# Returns all network connections made by some process
sub find_process_sockets
{
my ($pid) = @_;
return grep { $_->{'pid'} == $pid } &find_all_process_sockets();
}

# find_all_process_files()
# Returns all files currently held open by all processes
sub find_all_process_files
{
return &find_process_files();
}

# find_process_files([pid])
# Returns all files currently held open by some process
sub find_process_files
{
local ($pid) = @_;
local @rv;
if ($has_lsof_command) {
	if (defined($pid)) {
		open(LSOF, "$has_lsof_command -p ".quotemeta($pid)." |");
		}
	else {
		open(LSOF, "$has_lsof_command |");
		}
	while(<LSOF>) {
		if (/^(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\d+),(\d+)\s+(\d+)\s+(\d+)\s+(.*)/) {
			push(@rv, { 'pid' => $2,
				    'fd' => lc($4),
				    'type' => lc($5),
				    'device' => [ $6, $7 ],
				    'size' => $8,
				    'inode' => $9,
				    'file' => $10 });
			}
		elsif (/^(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\d+),(\d+)\s+(\d+)\s+(.*)/) {
			push(@rv, { 'pid' => $2,
				    'fd' => lc($4),
				    'type' => lc($5),
				    'device' => [ $6, $7 ],
				    'inode' => $8,
				    'file' => $9 });
			}
		}
	close(LSOF);
	}
return @rv;
}

# pty_backquote(cmd, uid, gid)
# Like the normal Perl backquote operator, but executes the command in a PTY
sub pty_backquote
{
local $rv;
local ($fh, $pid) = &pty_process_exec(@_);
while(<$fh>) {
	$rv .= $_;
	}
close($fh);
waitpid($pid, WNOHANG);
return $rv;
}

# pty_backquote_logged(cmd, uid, gid)
# Like pty_backquote, but logs the command as well
sub pty_backquote_logged
{
&additional_log('exec', undef, $_[0]);
return &pty_backquote(@_);
}

# get_cpu_info()
# Returns a list containing the 5, 10 and 15 minute load averages, and possibly
# the CPU mhz, model, vendor, cache and count
sub get_cpu_info
{
if (defined(&os_get_cpu_info)) {
	return &os_get_cpu_info();
	}
&clean_language();
local $out = &backquote_command("uptime 2>&1");
&reset_environment();
return $out =~ /average(s)?:\s+([0-9\.]+),?\s+([0-9\.]+),?\s+([0-9\.]+)/i ?
		( $2, $3, $4 ) : ( );
}

# find_subprocesses(&proc, [&plist])
# Returns a list of all processes under the one given
sub find_subprocesses
{
local $proc = $_[0];
local @plist = $_[1] ? @{$_[1]} : &list_processes();
local @sp = grep { $_->{'ppid'} &&
		   $_->{'ppid'} == $proc->{'pid'} } @plist;
local (@rv, $sp);
foreach $sp (@sp) {
	push(@rv, $sp, &find_subprocesses($sp, \@plist));
	}
return @rv;
}

# supported_signals()
# Returns signal names known to Perl for the kill function
sub supported_signals
{
if (defined(&os_supported_signals)) {
	return &os_supported_signals();
	}
else {
	return split(/\s+/, $Config{'sig_name'});
	}
}

# can_view_process(&process)
# Returns 1 if processes belong to this user can be seen
sub can_view_process
{
local ($p) = @_;
return 0 if ($p->{'pid'} == $$ && $config{'hide_self'});
local $user = $p->{'user'};
if ($hide{$user}) {
	return 0;
	}
elsif ($user_processes_only) {
	return &can_edit_process($user);
	}
else {
	return 1;
	}
}

# can_edit_process(user)
# Returns 1 if processes belong to this user can be edited. The 'manage as'
# user will still apply though.
sub can_edit_process
{
local ($user) = @_;
if (!$access{'edit'}) {
	return 0;
	}
elsif ($hide{$user}) {
	return 0;
	}
elsif ($access{'users'} eq '*') {
	return 1;
	}
elsif ($access{'users'} eq 'x') {
	return $user eq $remote_user;
	}
else {
	local @uinfo = getpwnam($user);
	foreach my $u (split(/\s+/, $access{'users'})) {
		if ($u =~ /^\@(.*)$/) {
			# Is he in this group?
			local @ginfo = getgrnam($1);
			return 1 if ($uinfo[3] == $ginfo[2]);
			return 1 if (&indexof($ginfo[0],
					      &other_groups($user)) >= 0);
			}
		elsif ($u =~ /^(\d+)\-(\d+)$/) {
			# Check UID
			return 1 if ($uinfo[2] >= $1 && $uinfo[2] <= $2);
			}
		else {
			return 1 if ($u eq $user);
			}
		}
	return 0;
	}
}

# nice_selector(name, value)
# Returns a menu for selecting a nice level
sub nice_selector
{
local ($name, $value) = @_;
local $l = scalar(@nice_range);
return &ui_select($name, $value,
	[ map { [ $_, $_.($_ == $nice_range[0] ? " ($text{'edit_prihigh'})" :
			  $_ == 0 ? " ($text{'edit_pridef'})" :
			  $_ == $nice_range[$l-1] ? " ($text{'edit_prilow'})" :
						    "") ] } @nice_range ]);
}

# get_kernel_info()
# Returns the system's kernel version, architecture and OS
sub get_kernel_info
{
if (defined(&os_get_kernel_info)) {
	return &os_get_kernel_info();
	}
else {
	my $uname = &has_command("uptrack-uname") || &has_command("uname");
	my $out = &backquote_command("$uname -r 2>/dev/null ; ".
				     "$uname -m 2>/dev/null ; ".
				     "$uname -s 2>/dev/null");
	return split(/\r?\n/, $out);
	}
}

# get_system_uptime()
# Returns uptime in days, minutes and hours
sub get_system_uptime
{
my $out = &backquote_command("LC_ALL='' LANG='' uptime");
if ($out =~ /up\s+(\d+)\s+(day|days),?\s+(\d+):(\d+)/) {
	# up 198 days,  2:06
	return ( $1, $3, $4 );
	}
elsif ($out =~ /up\s+(\d+)\s+(day|days),?\s+(\d+)\s+min/) {
	# up 198 days,  10 mins
	return ( $1, 0, $3 );
	}
elsif ($out =~ /up\s+(\d+):(\d+)/) {
	# up 3:10
	return ( 0, $1, $2 );
	}
elsif ($out =~ /up\s+(\d+)\s+min/) {
	# up 45 mins
	return ( 0, 0, $1 );
	}
else {
	return ( );
	}
}

# format_stime(&proc)
# Returns the process start time in human-readable format
sub format_stime
{
my ($p) = @_;
if (!$p->{'_stime_unix'}) {
	return $p->{'_stime'}
	}
elsif (time() - $p->{'_stime_unix'} > 86400) {
	return &make_date($p->{'_stime_unix'}, 1);
	}
else {
	return &make_date($p->{'_stime_unix'});
	}
}

1;


Filemanager

Name Type Size Permission Actions
help Folder 0755
images Folder 0755
lang Folder 0755
BorderPanel.class File 1.73 KB 0644
BorderPanel.java File 1.02 KB 0644
CHANGELOG File 1.58 KB 0644
CbButton.class File 4.68 KB 0644
CbButton.java File 5.31 KB 0644
CbButtonCallback.class File 137 B 0644
CbButtonGroup.class File 675 B 0644
CbScrollbar.class File 4.2 KB 0644
CbScrollbar.java File 7.62 KB 0644
CbScrollbarArrow.class File 1.9 KB 0644
CbScrollbarCallback.class File 164 B 0644
LineInputStream.class File 1.74 KB 0644
LineInputStream.java File 2.08 KB 0644
Makefile File 67 B 0644
MultiColumn.class File 9.55 KB 0644
MultiColumn.java File 12.55 KB 0644
MultiColumnCallback.class File 200 B 0644
StringJoiner.class File 783 B 0644
StringSplitter.class File 1.2 KB 0644
StringSplitter.java File 2.02 KB 0644
Tracer.class File 3.99 KB 0644
Tracer.java File 2.98 KB 0644
Util.class File 4.34 KB 0644
Util.java File 3.15 KB 0644
acl_security.pl File 1.53 KB 0755
cgi_args.pl File 280 B 0755
config-ALL-linux File 84 B 0644
config-aix File 83 B 0644
config-freebsd File 86 B 0644
config-hpux File 83 B 0644
config-irix File 83 B 0644
config-macos File 84 B 0644
config-netbsd File 86 B 0644
config-openbsd File 86 B 0644
config-openserver File 83 B 0644
config-osf1 File 82 B 0644
config-solaris File 83 B 0644
config-unixware File 83 B 0644
config-windows File 86 B 0644
config.info File 512 B 0644
config.info.ca File 635 B 0644
config.info.cs File 555 B 0644
config.info.de File 509 B 0644
config.info.es File 341 B 0644
config.info.fa File 679 B 0644
config.info.fr File 382 B 0644
config.info.hu File 521 B 0644
config.info.it File 576 B 0644
config.info.ja File 553 B 0644
config.info.nl File 513 B 0644
config.info.no File 513 B 0644
config.info.pl File 517 B 0644
config.info.pt_BR File 486 B 0644
config.info.ru File 891 B 0644
config.info.sv File 320 B 0644
config.info.tr File 570 B 0644
config.info.uk File 759 B 0644
config.info.zh File 253 B 0644
config.info.zh_TW File 303 B 0644
cpan_modules.pl File 73 B 0755
defaultacl File 38 B 0644
edit_proc.cgi File 4.17 KB 0755
freebsd-lib.pl File 4.5 KB 0755
hpux-lib.pl File 2.62 KB 0755
index.cgi File 466 B 0755
index_cpu.cgi File 1.3 KB 0755
index_run.cgi File 1.07 KB 0755
index_search.cgi File 6.48 KB 0755
index_size.cgi File 1.26 KB 0755
index_tree.cgi File 1.5 KB 0755
index_user.cgi File 1.11 KB 0755
index_zone.cgi File 1.34 KB 0755
kill_proc.cgi File 738 B 0755
kill_proc_list.cgi File 860 B 0755
killtail.cgi File 316 B 0755
linux-lib.pl File 18.45 KB 0755
log_parser.pl File 1.05 KB 0755
macos-lib.pl File 4.45 KB 0755
module.info File 289 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 119 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 163 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 213 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 226 B 0644
module.info.ca File 118 B 0644
module.info.ca.auto File 28 B 0644
module.info.cs File 28 B 0644
module.info.cs.auto File 112 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 119 B 0644
module.info.de File 96 B 0644
module.info.de.auto File 23 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 217 B 0644
module.info.es File 26 B 0644
module.info.es.auto File 101 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 145 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 230 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 127 B 0644
module.info.fr File 34 B 0644
module.info.fr.auto File 123 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 171 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 132 B 0644
module.info.hu File 25 B 0644
module.info.hu.auto File 109 B 0644
module.info.it File 31 B 0644
module.info.it.auto File 105 B 0644
module.info.ja File 27 B 0644
module.info.ja.auto File 154 B 0644
module.info.ko File 34 B 0644
module.info.ko.auto File 127 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 147 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 131 B 0644
module.info.ms File 120 B 0644
module.info.ms.auto File 24 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 147 B 0644
module.info.nl File 27 B 0644
module.info.nl.auto File 90 B 0644
module.info.no File 28 B 0644
module.info.no.auto File 95 B 0644
module.info.pl File 29 B 0644
module.info.pl.auto File 108 B 0644
module.info.pt File 27 B 0644
module.info.pt.auto File 107 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 148 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 138 B 0644
module.info.ru File 25 B 0644
module.info.ru.auto File 179 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 133 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 126 B 0644
module.info.sv File 25 B 0644
module.info.sv.auto File 91 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 325 B 0644
module.info.tr File 30 B 0644
module.info.tr.auto File 123 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 217 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 193 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 168 B 0644
module.info.zh File 24 B 0644
module.info.zh.auto File 91 B 0644
module.info.zh_TW File 30 B 0644
module.info.zh_TW.auto File 97 B 0644
open_files.cgi File 2.57 KB 0755
openbsd-lib.pl File 1.81 KB 0755
osf-lib.pl File 2.44 KB 0755
prefs.info File 53 B 0644
proc-lib.pl File 15.8 KB 0755
rbac-mapping File 126 B 0644
renice_proc.cgi File 617 B 0755
run.cgi File 1.38 KB 0755
safeacl File 35 B 0644
syslog_logs.pl File 336 B 0755
sysv-lib.pl File 6.12 KB 0755
tail.cgi File 750 B 0755
trace.cgi File 2.4 KB 0755
windows-lib.pl File 1.25 KB 0755