MOON
Server: Apache
System: Linux vps.thepromohut.com 2.6.18-398.el5 #1 SMP Tue Sep 16 20:51:48 EDT 2014 i686
User: caretrak (507)
PHP: 5.2.10
Disabled: NONE
Upload Files
File: //scripts.20110601.041516.15411/chcpass
#!/usr/bin/perl

if (-e "/etc/master.passwd") {
        die "rawchpass: fixme: freebsd please report this on support.cpanel.net";
}


my($user) = $ARGV[0];
my($pass) = $ARGV[1];

if ($ARGV[0] eq "") {
	chomp($up = <STDIN>);
	@UP = split(/ /, $up);
	$user = $UP[0];
	$pass = $UP[1];
}


if ($user eq "") { print "user is blank\n"; exit; }
if ($pass eq "") { print "pass is blank\n"; exit; }

open(RANDOM,"/dev/urandom");
read RANDOM,$random,4096;
close(RANDOM);

$random =~ s/\W//g;

$cpass = $pass;
$mytime = int(time / (60*60*24));


open(SHADOW,"/etc/shadow");
flock(SHADOW,LOCK_EX);
@SHADOW=<SHADOW>;
flock(SHADOW,LOCK_UN);
close(SHADOW);

open(SHADOW,">/etc/shadow");
flock(SHADOW,LOCK_EX);
foreach $line (@SHADOW) {
	if ($line =~ /^$user:/) {
		$line =~ s/\n//g;
	
		print "Changing password for $user\n";
		#operator:*:10325:-1:-1:-1:-1:-1:-1
		(undef,undef,undef,$g1,$g2,$g3,$g4,$g5,$g6) = split(/:/, $line);		
		$line = join(':',$user,$cpass,$mytime,$g1,$g2,$g3,$g4,$g5,$g6);
		$line = $line . "\n";
	}
	print SHADOW $line;
}
flock(SHADOW,LOCK_UN);
close(SHADOW);

print "Password for $user has been changed\n";