MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //var/usr/webmin-1.941/rbac/save_exec.cgi
#!/usr/bin/perl
# Create, update or delete one RBAC execution profile

require './rbac-lib.pl';
$access{'execs'} || &error($text{'execs_ecannot'});
&ReadParse();
&error_setup($text{'exec_err'});

&lock_rbac_files();
$execs = &list_exec_attrs();
if (!$in{'new'}) {
	$exec = $execs->[$in{'idx'}];
	$logname = $exec->{'name'};
	}
else {
	$exec = { 'attr' => { } };
	$logname = $in{'name'};
	}

if ($in{'delete'}) {
	# Just delete this execution profile
	&delete_exec_attr($exec);
	}
else {
	# Validate and store inputs
	$exec->{'name'} = $in{'name'};
	$exec->{'policy'} = $in{'policy'};
	if ($in{'id_def'}) {
		$exec->{'id'} = '*';
		}
	else {
		$in{'id'} =~ /^\/\S+/ || &error($text{'exec_eid'});
		$exec->{'id'} = $in{'id'};
		}
	$exec->{'cmd'} ||= 'cmd';
	foreach $i ("uid", "gid", "euid", "egid") {
		if ($in{$i."_def"}) {
			delete($exec->{'attr'}->{$i});
			}
		else {
			$in{$i} =~ /\S/ || &error($text{'exec_err'.$i});
			$exec->{'attr'}->{$i} = $in{$i};
			}
		}

	# Save or update execution profile
	if ($in{'new'}) {
		&create_exec_attr($exec);
		}
	else {
		&modify_exec_attr($exec);
		}
	}

&unlock_rbac_files();
&webmin_log($in{'delete'} ? "delete" : $in{'new'} ? "create" : "modify",
	    "exec", $logname, $exec);
&redirect("list_execs.cgi");