MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //scripts.20110531.215904.25158/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";