X7ROOT File Manager
Current Path:
/usr/libexec/webmin/bin
usr
/
libexec
/
webmin
/
bin
/
📁
..
📄
disable-proxy
(3.54 KB)
📄
disable-twofactor
(2.6 KB)
📄
enable-proxy
(4.12 KB)
📄
language-manager
(79.29 KB)
📄
list-config
(5.14 KB)
📄
passwd
(7.43 KB)
📄
server
(3.92 KB)
📄
set-config
(4.35 KB)
📄
update-devel
(1.64 KB)
📄
webmin
(14.57 KB)
Editing: disable-twofactor
#!/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 2022 Jamie Cameron <jcameron@webmin.com> Joe Cooper <joe@virtualmin.com> Ilia Rostovtsev <ilia@virtualmin.com>
Upload File
Create Folder