[ Avaa Bypassed ]




Upload:

Command:

www-data@3.148.201.19: ~ $
# nis-lib.pl
# Common functions for NIS client and server management

BEGIN { push(@INC, ".."); };
use WebminCore;
&init_config();
if (-r "$module_root_directory/$gconfig{'os_type'}-$gconfig{'os_version'}-lib.pl") {
	do "$gconfig{'os_type'}-$gconfig{'os_version'}-lib.pl";
	}
else {
	do "$gconfig{'os_type'}-lib.pl";
	}
if ($gconfig{'os_type'} =~ /-linux$/) {
	do "linux-lib.pl";
	}
&foreign_require("init", "init-lib.pl");

# init_script(action)
# Returns the full path to some init script
sub init_script
{
local %iconfig = &foreign_config("init");
return "$iconfig{'init_dir'}/$_[0]";
}

# get_nsswitch_conf()
# Parses lines of nsswitch.conf into an array
sub get_nsswitch_conf
{
local @rv;
open(SWITCH, "<".$config{'nsswitch_conf'});
while(<SWITCH>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/^\s*(\S+):\s*(.*)/) {
		local $sw = { 'service' => $1,
			      'order' => $2 };
		push(@rv, $sw);
		}
	}
close(SWITCH);
return @rv;
}

# save_nsswitch(service, order)
# Updates the line for some service in nsswitch.conf
sub save_nsswitch
{
local $lref = &read_file_lines($config{'nsswitch_conf'});
foreach $l (@$lref) {
	if ($l =~ /^\s*(\S+):/ && $1 eq $_[0]) {
		$l = "$_[0]:\t$_[1]";
		last;
		}
	}
}

# table_edit_setup(table, line, splitter)
# Returns &table, &lnums, line1, line2, ...
sub table_edit_setup
{
local @tables = &list_nis_tables();
local $t = $tables[$_[0]];
return ( $t ) if (!defined($_[1]));
local @lnums = ( $_[1] );
local $lref = &read_file_lines($t->{'files'}->[0]);
local @lines = ( [ split($_[2], $lref->[$_[1]]) ] );
local $i;
for($i=1; $t->{'files'}->[$i]; $i++) {
	local $lref2 = &read_file_lines($t->{'files'}->[$i]);
	local $lnum = 0;
	foreach $l (@$lref2) {
		local @line2 = split($_[2], $l);
		if ($line2[0] eq $lines[0]->[0]) {
			push(@lnums, $lnum);
			push(@lines, \@line2);
			last;
			}
		$lnum++;
		}
	}
return ($t, \@lnums, @lines);
}

# table_add(&table, separator, &record, ...)
# Adds a record to an NIS table
sub table_add
{
local $i = 2;
foreach $f (@{$_[0]->{'files'}}) {
	local $lref = &read_file_lines($f);
	push(@$lref, join($_[1], @{$_[$i++]}));
	}
&flush_file_lines();
}

# table_delete(&table, &lnums)
# Delete a record from an NIS table
sub table_delete
{
local $i = 0;
foreach $f (@{$_[0]->{'files'}}) {
	local $lref = &read_file_lines($f);
	splice(@$lref, $_[1]->[$i], 1);
	$i++;
	}
&flush_file_lines();
}

# table_update(&table, &lnums, separator, &record, ...)
# Modify a record in an NIS table
sub table_update
{
local $i = 0;
foreach $f (@{$_[0]->{'files'}}) {
	local $lref = &read_file_lines($f);
	splice(@$lref, $_[1]->[$i], 1, join($_[2], @{$_[$i+3]}));
	$i++;
	}
&flush_file_lines();
}

# date_input(day, month, year, prefix)
sub date_input
{
print "<input name=$_[3]d size=3 value='$_[0]'>";
print "/<select name=$_[3]m>\n";
local $m;
foreach $m (1..12) {
	printf "<option value=%d %s>%s</option>\n",
		$m, $_[1] eq $m ? 'selected' : '', $text{"smonth_$m"};
	}
print "</select>";
print "/<input name=$_[3]y size=5 value='$_[2]'>";
print &date_chooser_button("$_[3]d", "$_[3]m", "$_[3]y");
}

# parse_ypserv_conf()
# Returns &opts, &maps
sub parse_ypserv_conf
{
local (%opts, @hosts);
local $lnum = 0;
open(CONF, "<".$ypserv_conf);
while(<CONF>) {
	s/\r|\n//g;
	s/#.*$//;
	if (/^\s*([^:\s]+):\s*(yes|no)/) {
		# Found an option
		$opts{$1} = { 'name' => $1,
			      'value' => $2 eq 'yes' ? 1 : 0,
			      'line' => $lnum };
		}
	elsif (/^\s*([^:\s]+)\s*:\s*([^:\s]+)\s*:\s*([^:\s]+)\s*:\s*(none|port|mangle|deny)(\/mangle(:(\d+))?)?/) {
		# Found a host and domain line (new format)
		push(@hosts, { 'host' => $1,
			       'domain' => $2,
			       'map' => $3,
			       'sec' => $4,
			       'mangle' => $5 ? 1 : 0,
			       'field' => $7,
			       'line' => $lnum } );
		}
	elsif (/^\s*([^:\s]+)\s*:\s*([^:\s]+)\s*:\s*([^:\s]+)(\s*:\s*([^:\s]+))?(\s*:\s*([^:\s]+))?/) {
		# Found a host line (old format)
		push(@hosts, { 'host' => $1,
			       'map' => $2,
			       'sec' => $3,
			       'mangle' => $5 eq 'yes' ? 1 : 0,
			       'field' => $7 eq '' ? 2 : $7,
			       'line' => $lnum } );
		}
	$lnum++;
	}
close(CONF);
return (\%opts, \@hosts);
}

# parse_yp_makefile()
# Returns hashes of makefile variables and rules
sub parse_yp_makefile
{
# First parse joined lines
local $lnum = 0;
local (@lines, $llast);
open(MAKE, "<".$yp_makefile);
while(<MAKE>) {
	s/\r|\n//g;
	local $slash = (s/\\$//);
	s/#.*$//;
	if ($llast) {
		$llast->{'value'} .= " $_";
		$llast->{'eline'} = $lnum;
		}
	else {
		push(@lines, { 'value' => $_,
			       'line' => $lnum,
			       'eline' => $lnum });
		}
	$llast = $slash ? $lines[$#lines] : undef;
	$lnum++;
	}
close(MAKE);

# Then look for variables and rules
local ($i, %var, %rule);
for($i=0; $i<@lines; $i++) {
	if ($lines[$i]->{'value'} =~ /^\s*(\S+)\s*=\s*(.*)/) {
		# Found a variable
		$var{$1} = { 'name' => $1,
			     'value' => $2,
			     'type' => 0,
			     'line' => $lines[$i]->{'line'},
			     'eline' => $lines[$i]->{'eline'} };
		}
	elsif ($lines[$i]->{'value'} =~ /^\s*(\S+)\s*\+=\s*(.*)/) {
		# Adding to a variable
		if ($var{$1}) {
			$var{$1}->{'value'} .= ' '.$2;
			}
		}
	elsif ($lines[$i]->{'value'} =~ /^\s*(\S+):\s*(.*)/) {
		# Found a makefile rule
		$rule{$1} = { 'name' => $1,
			      'value' => $2,
			      'type' => 1,
			      'line' => $lines[$i]->{'line'},
			      'eline' => $lines[$i]->{'eline'} };
		if ($lines[$i+1]->{'value'} =~ /^\s+/) {
			$rule{$1}->{'code'} = $lines[$i+1]->{'value'};
			$rule{$1}->{'eline'} = $lines[$i+1]->{'eline'};
			$i++;
			}
		}
	}
return ( \%var, \%rule );
}

# expand_vars(string, &vars)
sub expand_vars
{
local $rv = $_[0];
while($rv =~ /^(.*)\$\(([A-Za-z0-9_]+)\)(.*)$/) {
#	if (substr($_[1]->{$2}->{'value'}, 0, 7) eq '$(shell') {
#		$rv = $1."\0(".$2.")".$3;
#		}
#	else {
		$rv = $1.$_[1]->{$2}->{'value'}.$3;
#		}
	}
#$rv =~ s/\0/\$/g;
return $rv;
}

# update_makefile(&old, value, [value]);
sub update_makefile
{
local $lref = &read_file_lines($yp_makefile);
local @n;
if ($_[0]->{'type'} == 0) {
	@n = ( "$_[0]->{'name'} = $_[1]" );
	}
else {
	@n = ( "$_[0]->{'name'}: $_[1]", $_[2] );
	}
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1, @n);
}

1;


Filemanager

Name Type Size Permission Actions
images Folder 0755
lang Folder 0755
CHANGELOG File 308 B 0644
aix-lib.pl File 9.79 KB 0755
backup_config.pl File 817 B 0755
build.cgi File 162 B 0755
coherent-linux-lib.pl File 10.4 KB 0755
config-aix File 181 B 0644
config-coherent-linux File 116 B 0644
config-debian-linux File 120 B 0644
config-generic-linux File 116 B 0644
config-mandrake-linux File 116 B 0644
config-msc-linux File 116 B 0644
config-open-linux File 117 B 0644
config-openSUSE-Linux-15.0-ALL File 116 B 0644
config-openmamba-linux File 116 B 0644
config-redhat-linux File 116 B 0644
config-slackware-linux File 116 B 0644
config-solaris File 167 B 0644
config-solaris-8-ALL File 199 B 0644
config-suse-linux File 116 B 0644
config-trustix-linux File 116 B 0644
config-united-linux File 116 B 0644
config.info File 282 B 0644
config.info.ca File 320 B 0644
config.info.cs File 321 B 0644
config.info.de File 321 B 0644
config.info.es File 277 B 0644
config.info.fr File 350 B 0644
config.info.hu File 0 B 0644
config.info.nl File 290 B 0644
config.info.no File 297 B 0644
config.info.pl File 309 B 0644
config.info.ru File 491 B 0644
config.info.sv File 132 B 0644
config.info.uk File 500 B 0644
debian-linux-lib.pl File 10.19 KB 0755
edit_aliases.cgi File 1.2 KB 0755
edit_client.cgi File 1.41 KB 0755
edit_ethers.cgi File 1.14 KB 0755
edit_group.cgi File 1.81 KB 0755
edit_group_shadow.cgi File 1.83 KB 0755
edit_hosts.cgi File 1.31 KB 0755
edit_netgroup.cgi File 2.01 KB 0755
edit_netmasks.cgi File 1.16 KB 0755
edit_networks.cgi File 1.35 KB 0755
edit_passwd.cgi File 4.8 KB 0755
edit_passwd_shadow.cgi File 4.8 KB 0755
edit_passwd_shadow_full.cgi File 4.8 KB 0755
edit_protocols.cgi File 1.35 KB 0755
edit_rpc.cgi File 1.3 KB 0755
edit_security.cgi File 1.92 KB 0755
edit_server.cgi File 607 B 0755
edit_services.cgi File 1.52 KB 0755
edit_services2.cgi File 1.53 KB 0755
edit_switch.cgi File 1.74 KB 0755
edit_tables.cgi File 6.24 KB 0755
feedback_files.pl File 157 B 0755
index.cgi File 776 B 0755
linux-lib.pl File 5.27 KB 0755
list_switches.cgi File 772 B 0755
mandrake-linux-lib.pl File 10.38 KB 0755
md5-lib.pl File 7.58 KB 0755
module.info File 346 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 167 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 195 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 287 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 250 B 0644
module.info.ca File 163 B 0644
module.info.ca.auto File 12 B 0644
module.info.cs File 28 B 0644
module.info.cs.auto File 145 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 154 B 0644
module.info.de File 136 B 0644
module.info.de.auto File 12 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 235 B 0644
module.info.es File 31 B 0644
module.info.es.auto File 138 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 164 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 248 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 158 B 0644
module.info.fr File 30 B 0644
module.info.fr.auto File 141 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 170 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 171 B 0644
module.info.hu File 34 B 0644
module.info.hu.auto File 147 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 152 B 0644
module.info.ja File 49 B 0644
module.info.ja.auto File 226 B 0644
module.info.ko File 39 B 0644
module.info.ko.auto File 154 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 169 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 169 B 0644
module.info.ms File 149 B 0644
module.info.ms.auto File 12 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 144 B 0644
module.info.nl File 30 B 0644
module.info.nl.auto File 130 B 0644
module.info.no File 29 B 0644
module.info.no.auto File 117 B 0644
module.info.pl File 107 B 0644
module.info.pl.auto File 12 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 164 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 173 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 156 B 0644
module.info.ru File 41 B 0644
module.info.ru.auto File 246 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 165 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 165 B 0644
module.info.sv File 31 B 0644
module.info.sv.auto File 123 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 347 B 0644
module.info.tr File 0 B 0644
module.info.tr.auto File 169 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 247 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 244 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 217 B 0644
module.info.zh File 34 B 0644
module.info.zh.auto File 120 B 0644
module.info.zh_TW File 37 B 0644
module.info.zh_TW.auto File 126 B 0644
msc-linux-lib.pl File 10.38 KB 0755
nis-lib.pl File 6.02 KB 0755
nisupdate.conf File 1.94 KB 0644
old_edit_passwd_shadow.cgi File 4.62 KB 0755
old_edit_switch.cgi File 1.76 KB 0755
old_save_switch.cgi File 533 B 0755
open-linux-lib.pl File 7.89 KB 0755
openmamba-linux-lib.pl File 10.38 KB 0755
redhat-linux-lib.pl File 10.38 KB 0755
save_aliases.cgi File 749 B 0755
save_client.cgi File 661 B 0755
save_ethers.cgi File 793 B 0755
save_file.cgi File 588 B 0755
save_group.cgi File 945 B 0755
save_group_shadow.cgi File 1.04 KB 0755
save_hosts.cgi File 758 B 0755
save_netgroup.cgi File 1.04 KB 0755
save_netmasks.cgi File 753 B 0755
save_networks.cgi File 791 B 0755
save_passwd_shadow.cgi File 2.36 KB 0755
save_protocols.cgi File 806 B 0755
save_rpc.cgi File 746 B 0755
save_security.cgi File 996 B 0755
save_server.cgi File 184 B 0755
save_services.cgi File 775 B 0755
save_services2.cgi File 776 B 0755
save_switch.cgi File 932 B 0755
slackware-linux-lib.pl File 9.91 KB 0755
solaris-lib.pl File 10.45 KB 0755
suse-linux-8.2-lib.pl File 11.05 KB 0755
suse-linux-9.0-lib.pl File 11.05 KB 0755
suse-linux-lib.pl File 11.88 KB 0755
switch-lib.pl File 3.08 KB 0755
trustix-linux-lib.pl File 10.38 KB 0755
united-linux-lib.pl File 11.05 KB 0755