HEX
Server: Apache/2.4.29 (Ubuntu)
System: Linux bareserver 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
User: root (0)
PHP: 7.2.24-0ubuntu0.18.04.17
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,
Upload Files
File: //usr/share/webmin/webmin/change_os.cgi
#!/usr/bin/perl
# change_os.cgi
# Change OS settings

require './webmin-lib.pl';
&ReadParse();

&lock_file("$config_directory/config");
if ($in{'update'}) {
	# Automatically detect
	%osinfo = &detect_operating_system();
	$gconfig{'real_os_type'} = $osinfo{'real_os_type'};
	$gconfig{'real_os_version'} = $osinfo{'real_os_version'};
	$gconfig{'os_type'} = $osinfo{'os_type'};
	$gconfig{'os_version'} = $osinfo{'os_version'};
	}
elsif ($in{'type'} ne $gconfig{'real_os_type'} ||
       $in{'version'} ne $gconfig{'real_os_version'} ||
       $in{'itype'} ne $gconfig{'os_type'} ||
       $in{'iversion'} ne $gconfig{'os_version'}) {
	# Manually change
	$gconfig{'real_os_type'} = $in{'type'};
	$in{'version'} || &error($text{'os_eversion'});
	$gconfig{'real_os_version'} = $in{'version'};
	($os) = grep { $_->{'realtype'} eq $in{'type'} }
		     &list_operating_systems();
	$gconfig{'os_type'} = $in{'itype'};
	$in{'iversion'} || &error($text{'os_eiversion'});
	$gconfig{'os_version'} = $in{'iversion'};
	}
$gconfig{'path'} = join($path_separator, split(/[\r\n]+/, $in{'path'}));
$gconfig{'syspath'} = !$in{'syspath'};
if ($gconfig{'ld_env'}) {
	$gconfig{'ld_path'} = join($path_separator,
				   split(/[\r\n]+/, $in{'ld_path'}));
	}
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
foreach $e (keys %miniserv) {
	delete($miniserv{$e}) if ($e =~ /^env_(\S+)$/ &&
				  $1 ne "WEBMIN_CONFIG" && $1 ne "WEBMIN_VAR");
	}
for($i=0; defined($n = $in{"name_$i"}); $i++) {
	next if (!$n);
	$miniserv{'env_'.$n} = $in{"value_$i"}
		if ($n ne "WEBMIN_CONFIG" && $n ne "WEBMIN_VAR");
	}
$miniserv{'perllib'} = join(':', split(/\r?\n/, $in{'perllib'}));
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});

&show_restart_page();
&webmin_log("os", undef, undef, \%in);