[ Avaa Bypassed ]




Upload:

Command:

www-data@3.19.255.50: ~ $
#!/usr/bin/perl
# edit_export.cgi
# Allow editing of one export to a client

use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './exports-lib.pl';
our (%text, %in, %gconfig);

&ReadParse();
my $nfsv = $in{'ver'} || &nfs_max_version("localhost");
my ($exp, %opts);

if ($in{'new'}) {
	&ui_print_header(undef, $text{'create_title'}, "", "create_export");
	if ($nfsv >= 4) {
		$exp->{"pfs"} = "/export";
		}
	$exp->{'active'} = 1;
	}
else {
	&ui_print_header(undef, $text{'edit_title'}, "", "edit_export");
	my @exps = &list_exports();
	$exp = $exps[$in{'idx'}];
	%opts = %{$exp->{'options'}};
	if ($nfsv == 4) {
		# If no NFSv4 options are in use, use NFSv3 form
		if (!$exp->{'pfs'} && $exp->{'host'} !~ /^gss/ &&
		    !$opts{'sec'}) {
			$nfsv = 3;
			}
		}
	}

# WebNFS doesn't exist on Linux
my $linux = ($gconfig{'os_type'} =~ /linux/i) ? 1 : 0;

print &ui_form_start("save_export.cgi", "post");
print &ui_hidden("new", $in{'new'});
print &ui_hidden("idx", $in{'idx'});
print &ui_hidden("ver", $in{'ver'});
print &ui_table_start($text{'edit_details'}, "width=100%", 2);

# Show directory input
print &ui_table_row(&hlink($text{'edit_dir'}, "dir"),
	&ui_textbox("dir", $exp->{'dir'}, 60)." ".
	&file_chooser_button("dir", 1));

# Show PFS directory
if ($nfsv == 4 && $in{'new'}) {
	print &ui_table_row(&hlink($text{'edit_pfs'}, "pfs"),
		&ui_opt_textbox("pfs", $exp->{'pfs'}, 60, $text{'edit_none'})." ".
		&file_chooser_button("dir", 1));
	}
elsif ($exp->{'pfs'}) {
	print &ui_table_row(&hlink($text{'edit_pfs'}, "pfs"),
		"<tt>".&html_escape($exp->{'pfs'})."</tt>");
	}

# Show active input
print &ui_table_row(&hlink($text{'edit_active'}, "active"),
	&ui_yesno_radio("active", $exp->{'active'}));

# Work out export destination
my $h = $exp->{'host'};
my ($mode, $host, $netgroup, $network, $netmask, $network6, $netmask6, $sec);
if ($h eq "=public") {
	$mode = 0;
	}
elsif ($h =~ /^gss\/(.*)/) {
	# To all clients, but with security required
	$mode = 3;
	$sec = $1;
	}
elsif ($h =~ /^\@(.*)/) {
	$mode = 1;
	$netgroup = $1;
	}
elsif ($h =~ /^([0-9\.]+)\/([0-9\.]+)$/) {
	$mode = 2;
	$network = $1;
	$netmask = $2;
	}
elsif ($h =~ /^([a-f0-9:]+)\/([0-9]+)$/i) {
	$mode = 6;
	$network6 = $1;
	$netmask6 = $2;
	}
elsif ($h eq "") {
	$mode = 3;
	}
else {
	$mode = 4;
	$host = $h;
	}

# Allowed hosts table
my @table;
push(@table, [ 3, $text{'edit_all'} ]);
push(@table, [ 4, $text{'edit_host'},
	       &ui_textbox("host", $host, 40) ]);
if (!$linux) {
	push(@table, [ 0, $text{'edit_webnfs'} ]);
	}
push(@table, [ 1, $text{'edit_netgroup'},
	       &ui_textbox("netgroup", $netgroup, 20) ]);
push(@table, [ 2, $text{'edit_network4'},
	       &ui_textbox("network", $network, 15)." ".
	       $text{'edit_netmask'}." ".
	       &ui_textbox("netmask", $netmask, 15) ]);
push(@table, [ 6,  $text{'edit_network6'},
	       &ui_textbox("network6", $network6, 40)."/".
	       &ui_textbox("netmask6", $netmask6, 6) ]);
print &ui_table_row(&hlink($text{'edit_to'}, "client"),
	&ui_radio_table("mode", $mode, \@table));

if ($nfsv >= 4) {
	# Show security level list
	$sec ||= $opts{'sec'};
	$sec ||= 'sys';
	print &ui_table_row(&hlink($text{'edit_secs'}, "secs"),
		&ui_multi_select("sec",
			[ map { [ $_, $text{'edit_sec_'.$_} ] }
			      split(/:/, $sec) ],
			[ [ 'sys', $text{'edit_sec_sys'} ],
			  [ 'krb5', $text{'edit_sec_krb5'} ],
			  [ 'krb5i', $text{'edit_sec_krb5i'} ],
			  [ 'krb5p', $text{'edit_sec_krb5p'} ],
			  [ 'lipkey', $text{'edit_sec_lipkey'} ],
			  [ 'spkm', $text{'edit_sec_spkm'} ] ],
			6, 1, 0));
	}

print &ui_table_end();

print &ui_table_start($text{'edit_security'}, "width=100%", 4);

# Show read-only input
print &ui_table_row(&hlink($text{'edit_ro'}, "ro"),
	&ui_yesno_radio("ro", defined($opts{'rw'}) ? 0 : 1));

# Show input for secure port
print &ui_table_row(&hlink($text{'edit_insecure'}, "insecure"),
	&ui_yesno_radio("insecure", defined($opts{'insecure'}) ? 1 : 0, 0, 1));

# Show subtree check input
print &ui_table_row(&hlink($text{'edit_subtree_check'}, "subtree_check"),
	&ui_yesno_radio("no_subtree_check",defined($opts{'no_subtree_check'})));

# Show nohide check input
print &ui_table_row(&hlink($text{'edit_hide'}, "hide"),
	&ui_yesno_radio("nohide", defined($opts{'nohide'}) ? 1 : 0, 0, 1));

# Show sync input
my $sync = defined($opts{'sync'}) ? 1 : defined($opts{'async'}) ? 2 : 0;
print &ui_table_row(&hlink($text{'edit_sync'}, "sync"),
	&ui_radio("sync", $sync,
		  [ map { [ $_, $text{'edit_sync'.$_} ] } (1, 2, 0) ]));

# Show root trust input
my $squash = defined($opts{'no_root_squash'}) ? 0 :
	      defined($opts{'all_squash'}) ? 2 : 1;
print &ui_table_row(&hlink($text{'edit_squash'}, "squash"),
	&ui_radio("squash", $squash,
		  [ [ 0, $text{'edit_everyone'} ],
		    [ 1, $text{'edit_except'} ],
		    [ 2, $text{'edit_nobody'} ] ]));

# Show untrusted user input
my $anonuid;
if (defined($opts{'anonuid'})) {
	$anonuid = getpwuid($opts{'anonuid'}) || $opts{'anonuid'};
	}
print &ui_table_row(&hlink($text{'edit_anonuid'}, "anonuid"),
	&ui_opt_textbox("anonuid", $anonuid, 20, $text{'edit_default'})." ".
	&user_chooser_button("anonuid", 0));

# Show untrusted group input
my $anongid;
if (defined($opts{'anongid'})) {
	$anongid = getgrgid($opts{'anongid'}) || $opts{'anongid'};
	}
print &ui_table_row(&hlink($text{'edit_anongid'}, "anongid"),
	&ui_opt_textbox("anongid", $anongid, 20, $text{'edit_default'})." ".
	&group_chooser_button("anongid", 0));

# Show input for relative symlinks
print &ui_table_row(&hlink($text{'edit_relative'}, "link_relative"),
	&ui_yesno_radio("link_relative", defined($opts{'link_relative'})));

# Show deny access input
print &ui_table_row(&hlink($text{'edit_noaccess'}, "noaccess"),
	&ui_yesno_radio("noaccess", defined($opts{'noaccess'})));

# Show untrusted UIDs input
print &ui_table_row(&hlink($text{'edit_uids'}, "squash_uids"),
	&ui_opt_textbox("squash_uids", $opts{'squash_uids'}, 20,
			$text{'edit_none'}));

# Show untrusted GIDs input
print &ui_table_row(&hlink($text{'edit_gids'}, "squash_gids"),
	&ui_opt_textbox("squash_gids", $opts{'squash_gids'}, 20,
			$text{'edit_none'}));

print &ui_table_end();

if (!$in{'new'}) {
	print &ui_form_end([ [ undef, $text{'save'} ],
			     [ 'delete', $text{'delete'} ] ]);
	}
else {
	print &ui_form_end([ [ undef, $text{'create'} ] ]);
	}

&ui_print_footer("", $text{'index_return'});

Filemanager

Name Type Size Permission Actions
help Folder 0755
images Folder 0755
lang Folder 0755
CHANGELOG File 621 B 0644
backup_config.pl File 696 B 0755
cgi_args.pl File 268 B 0755
config-AlmaLinux-7.0-ALL File 84 B 0644
config-Amazon-Linux-2-ALL File 84 B 0644
config-CentOS-Linux-7.0-ALL File 84 B 0644
config-CentOS-Stream-Linux-8.0-ALL File 84 B 0644
config-CloudLinux-8.0-ALL File 84 B 0644
config-Oracle-Linux-8.0-ALL File 84 B 0644
config-Redhat-Enterprise-Linux-7.0-ALL File 84 B 0644
config-Rocky-Linux-7.0-ALL File 84 B 0644
config-Scientific-Linux-7.0-ALL File 84 B 0644
config-aix File 139 B 0644
config-cobalt-linux File 248 B 0644
config-coherent-linux File 200 B 0644
config-corel-linux File 204 B 0644
config-debian-linux File 204 B 0644
config-debian-linux-2.2 File 204 B 0644
config-debian-linux-3.0-ALL File 206 B 0644
config-generic-linux File 167 B 0644
config-gentoo-linux File 190 B 0644
config-mandrake-linux File 196 B 0644
config-msc-linux File 190 B 0644
config-open-linux File 200 B 0644
config-openSUSE-Linux-15.0-ALL File 92 B 0644
config-openmamba-linux File 200 B 0644
config-pardus-linux File 167 B 0644
config-redhat-linux File 200 B 0644
config-redhat-linux-24.0-ALL File 101 B 0644
config-slackware-linux File 167 B 0644
config-slackware-linux-8.0-ALL File 113 B 0644
config-sol-linux File 167 B 0644
config-suse-linux File 206 B 0644
config-suse-linux-7.1-ALL File 204 B 0644
config-syno-linux File 187 B 0644
config-trustix-linux File 190 B 0644
config-turbo-linux File 196 B 0644
config-united-linux File 204 B 0644
config.info File 170 B 0644
config.info.ca File 206 B 0644
config.info.cs File 150 B 0644
config.info.de File 194 B 0644
config.info.es File 123 B 0644
config.info.fr File 149 B 0644
config.info.it File 194 B 0644
config.info.ms File 125 B 0644
config.info.nl File 195 B 0644
config.info.no File 193 B 0644
config.info.pl File 162 B 0644
config.info.ru File 243 B 0644
config.info.sv File 104 B 0644
config.info.tr File 139 B 0644
config.info.uk File 242 B 0644
config.info.zh File 98 B 0644
config.info.zh_TW File 101 B 0644
delete_exports.cgi File 1009 B 0755
edit_export.cgi File 6.23 KB 0755
exports-lib.pl File 8.27 KB 0755
index.cgi File 2.11 KB 0755
install_check.pl File 407 B 0755
log_parser.pl File 1.06 KB 0755
module.info File 181 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 112 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 140 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 169 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 158 B 0644
module.info.ca File 0 B 0644
module.info.ca.auto File 126 B 0644
module.info.cs File 0 B 0644
module.info.cs.auto File 116 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 104 B 0644
module.info.de File 0 B 0644
module.info.de.auto File 135 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 208 B 0644
module.info.es File 0 B 0644
module.info.es.auto File 145 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 136 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 143 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 119 B 0644
module.info.fr File 0 B 0644
module.info.fr.auto File 130 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 127 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 112 B 0644
module.info.hu File 0 B 0644
module.info.hu.auto File 160 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 140 B 0644
module.info.ja File 0 B 0644
module.info.ja.auto File 153 B 0644
module.info.ko File 0 B 0644
module.info.ko.auto File 135 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 119 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 129 B 0644
module.info.ms File 0 B 0644
module.info.ms.auto File 113 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 132 B 0644
module.info.nl File 0 B 0644
module.info.nl.auto File 114 B 0644
module.info.no File 0 B 0644
module.info.no.auto File 101 B 0644
module.info.pl File 0 B 0644
module.info.pl.auto File 115 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 140 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 149 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 123 B 0644
module.info.ru File 0 B 0644
module.info.ru.auto File 205 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 124 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 112 B 0644
module.info.sv File 0 B 0644
module.info.sv.auto File 102 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 225 B 0644
module.info.tr File 0 B 0644
module.info.tr.auto File 155 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 189 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 192 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 147 B 0644
module.info.zh File 0 B 0644
module.info.zh.auto File 114 B 0644
module.info.zh_TW File 0 B 0644
module.info.zh_TW.auto File 123 B 0644
restart_mountd.cgi File 349 B 0755
save_export.cgi File 4.44 KB 0755