HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/share/usermin/cron/save_env.cgi
#!/usr/bin/perl
# save_env.cgi
# Save an existing environment variable, or create a new one

require './cron-lib.pl';
&error_setup($text{'env_err'});
&ReadParse();

@jobs = &list_cron_jobs();
if ($in{'new'}) {
	$job = { };
	}
else {
	$oldjob = $jobs[$in{'idx'}];
	$job->{'file'} = $oldjob->{'file'};
	$job->{'line'} = $oldjob->{'line'};
	}

if ($in{'delete'}) {
	# Just re-direct to delete CGI
	&redirect("delete_env.cgi?idx=$in{'idx'}");
	exit;
	}

# Check if this user is allowed to execute cron jobs
&can_use_cron($in{'user'}) ||
	&error(&text('save_eallow', $in{'user'}));

# Check module access control
&can_edit_user(\%access, $in{'user'}) ||
	&error(&text('save_ecannot', $in{'user'}));

@files = &unique((map { $_->{'file'} } @jobs),
	         "$config{'cron_dir'}/$in{'user'}");
foreach $f (@files) { &lock_file($f); }

# Check and parse inputs
if ($in{'name'} !~ /^\S+$/) {
	&error($text{'save_ename'});
	}
if (!$in{'user'}) {
	&error($text{'save_euser'});
	}
if (!defined(getpwnam($in{'user'}))) {
	&error(&text('save_euser2', $in{'user'}));
	}
$job->{'active'} = $in{'active'};
$job->{'name'} = $in{'name'};
$job->{'value'} = $in{'value'};
$job->{'user'} = $in{'user'};

if (!$in{'new'}) {
	# Editing an existing variable
	&can_edit_user(\%access, $oldjob->{'user'}) ||
		&error(&text('save_ecannot', $oldjob->{'user'}));
	if ($job->{'user'} eq $oldjob->{'user'}) {
		# Not changing user
		if ($in{'where'}) {
			&delete_cron_job($job);
			&insert_cron_job($job);
			}
		else {
			&change_cron_job($job);
			}
		}
	else {
		# Changing user
		&delete_cron_job($oldjob);
		if ($in{'where'}) {
			&insert_cron_job($job);
			}
		else {
			&create_cron_job($job);
			}
		}
	}
else {
	# Creating a new variable
	if ($in{'where'}) {
		&insert_cron_job($job);
		}
	else {
		&create_cron_job($job);
		}
	}

foreach $f (@files) { &unlock_file($f); }
if ($in{'new'}) {
	&webmin_log("create", "env", $in{'user'}, \%in);
	}
else {
	&webmin_log("modify", "env", $in{'user'}, \%in);
	}
&redirect("");