Server IP : 195.201.23.43 / Your IP : 13.58.187.29 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/bin/ |
Upload File : |
#!/usr/bin/env perl # disable-twofactor - Disable two-factor authentication for a user. use strict; use warnings; BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; } use 5.010; # Version in CentOS 6 use Getopt::Long; use Pod::Usage; use Term::ANSIColor qw(:constants); sub main { my %opt; GetOptions( 'help|h' => \$opt{'help'}, 'config|c=s' => \$opt{'config'}, 'user|u=s' => \$opt{'user'} ); pod2usage(0) if ( $opt{'help'} ); $opt{'config'} ||= "/etc/webmin"; # Boilerplate, boilerplate, boilerplate... $ENV{'WEBMIN_CONFIG'} = $opt{'config'}; $ENV{'WEBMIN_VAR'} ||= "/var/webmin"; $ENV{'MINISERV_CONFIG'} = $ENV{'WEBMIN_CONFIG'} . "/miniserv.conf"; my $root = root($opt{'config'}); chdir($root); $0 = "$root/bin/webmin"; push(@INC, $root); eval 'use WebminCore'; ## no critic init_config(); foreign_require('acl', 'acl-lib.pl'); our (%config); # Get the user my @users = acl::list_users(); my $user; ($user) = grep { $_->{'name'} eq $opt{'user'} } @users; # Cancel twofactor authentication $user->{'twofactor_provider'} = undef; $user->{'twofactor_id'} = undef; $user->{'twofactor_apikey'} = undef; acl::modify_user($user->{'name'}, $user); reload_miniserv(); webmin_log("onefactor", "user", $user->{'name'}); exit 0; } exit main( \@ARGV ) if !caller(0); sub root { my ($config) = @_; open(my $CONF, "<", "$config/miniserv.conf") || die RED, "Failed to open $config/miniserv.conf", RESET; my $root; while (<$CONF>) { if (/^root=(.*)/) { $root = $1; } } close($CONF); # Does the Webmin root exist? if ( $root ) { die "$root is not a directory. Is --config correct?" unless (-d $root); } else { die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}"; } return $root; } 1; =pod =head1 NAME disable-twofactor =head1 DESCRIPTION Disable two factor authentication for a given user. Useful in cases where the second factor (e.g. phone or USB key) has been lost. =head1 SYNOPSIS webmin disable-twofactor --user username =head1 OPTIONS =over =item --help, -h Print this usage summary and exit. =item --config, -c Specify the full path to the Webmin configuration directory. Defaults to C</etc/webmin> =item --user, -u Name of the user to disable two-factor authentication for. =back =head1 LICENSE AND COPYRIGHT Copyright 2018 Jamie Cameron <jcameron@webmin.com> Joe Cooper <joe@virtualmin.com> Ilia Rostovtsev <ilia@virtualmin.com>Private