OK I figured it out, it was missing the second } at the end!
PHP:
<?php
$user = $_POST['username'];
$userid = exec ("sudo getent passwd | grep $user");
// ***** NOTE: I used if FALSE $userid where
// you used TRUE $userid. To use my code
// you have to use the !$userid which checks
// for a false $userid. It is equivilant to:
// $userid === FALSE; or $userid !== TRUE;
if( !$userid ){
header("Location: failed.php");
}else {
//Make sure the User Account isn't already configured
$userpasswd = "/home/$user/etc/passwd";
if(file_exists($userpasswd)){
header("Location: exists.php");
}else {
//Execute mkdir
$mkdiruser = exec ("mkdir -m 751 /home/$user");
$inbound = exec ("mkdir -m 770 /home/$user/inbound");
$outbound = exec ("mkdir -m 770 /home/$user/outbound");
$test = exec ("mkdir -m 770 /home/$user/test");
$ssh = exec ("mkdir -m 700 /home/$user/.ssh");
//Execute Change Owner of Directories
$chuser = exec ("sudo chown $user /home/$user");
$chinbound = exec ("sudo chown $user /home/$user/inbound");
$choutbound = exec ("sudo chown $user /home/$user/outbound");
$chtest = exec ("sudo chown $user /home/$user/test");
$chssh = exec ("sudo chown $user /home/$user/.ssh");
//Execute Change Group Owner of Directories
$chguser = exec ("sudo chgrp \"Domain Users\" /home/$user");
$chginbound = exec ("sudo chgrp \"Domain Users\" /home/$user/inbound");
$chgoutbound = exec ("sudo chgrp \"Domain Users\" /home/$user/outbound");
$chgtest = exec ("sudo chgrp \"Domain Users\" /home/$user/test");
$chgssh = exec ("sudo chgrp \"Domain Users\" /home/$user/.ssh");
//Unzip scponly.zip to user home dir
$unzip = exec("sudo /usr/bin/unzip -d /home/$user/ /usr/local/src/scponly.zip");
//Change file permissions to write ALL
$write = exec ("sudo chmod 666 /home/$user/etc/passwd");
//Pipe user UID into users/etc/passwd file
$filename = ("/home/$user/etc/passwd");
$getent = exec ("sudo getent passwd | grep $user");
$somecontent = "$getent\n";
// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'w')) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
fclose($handle);
} else {
echo "The file $filename is not writable";
}
//Change file permissions back
$write = exec ("sudo chmod 644 /home/$user/etc/passwd");
//Print results of make direcotries
header("Location: success.php");
} }
?>