Server IP : 195.201.23.43 / Your IP : 3.147.103.244 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : 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, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/acl/ |
Upload File : |
#!/usr/bin/perl # edit_unix.cgi # Save automatic unix user authentication options use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './acl-lib.pl'; our (%in, %text, %config, %access); &ReadParse(); &error_setup($text{'unix_err'}); $access{'unix'} && $access{'create'} && $access{'delete'} || &error($text{'unix_ecannot'}); # Parse Unix auth table my @unix; if (!$in{'unix_def'}) { for(my $i=0; defined(my $mode = $in{"mode_$i"}); $i++) { next if (!$mode); my $who = $in{"who_$i"}; if ($mode == 2 && !$who) { &error(&text('unix_ewhogroup', $i+1)); } elsif ($mode == 3 && !$who) { &error(&text('unix_ewhouser', $i+1)); } my $to = $in{"to_$i"}; push(@unix, [ $mode == 1 ? "*" : $mode == 2 ? "\@$who" : $who, $to ]); } @unix || &error($text{'unix_enone'}); } # Parse list of allowed users my @users = split(/\s+/, $in{"users"}); if ($in{"access"}) { foreach my $u (@users) { if ($u =~ /^\@(\S+)$/) { defined(getgrnam($1)) || &error(&text('unix_egroup', "$1")); } elsif ($u =~ /^(\d*)-(\d*)$/ && ($1 || $2)) { # Assume UIDs are ok } else { defined(getpwnam($u)) || &error(&text('unix_euser', $u)); } } } if ($in{'shells_deny'}) { -r $in{'shells'} || &error($text{'unix_eshell'}); } &lock_file($ENV{'MINISERV_CONFIG'}); my %miniserv; &get_miniserv_config(\%miniserv); my $oldsudo = $miniserv{'sudo'}; &save_unixauth(\%miniserv, \@unix); delete($miniserv{"allowusers"}); delete($miniserv{"denyusers"}); if ($in{"access"} == 1) { $miniserv{"allowusers"} = join(' ', @users); } elsif ($in{"access"} == 2) { $miniserv{"denyusers"} = join(' ', @users); } if ($in{'shells_deny'}) { $miniserv{'shells_deny'} = $in{'shells'}; } else { delete($miniserv{'shells_deny'}); } if ($in{'sudo'}) { &has_command("sudo") || &error(&text('unix_esudo', "<tt>sudo</tt>")); eval "use IO::Pty"; $@ && &error(&text('unix_esudomod', "<tt>IO::Pty</tt>")); } $miniserv{'sudo'} = $in{'sudo'}; $miniserv{'pamany'} = $in{'pamany'} ? $in{'pamany_user'} : undef; &put_miniserv_config(\%miniserv); &unlock_file($ENV{'MINISERV_CONFIG'}); if ($oldsudo != $in{'sudo'}) { &restart_miniserv(); } else { &reload_miniserv(); } &webmin_log("unix"); &redirect("");Private