/dev/null"; syslog(LOG_ALERT, "/usr/bin/id cmd: $cmd"); $handle = popen($cmd, 'r'); $result = trim(fread($handle, 4192)); $status = pclose($handle); if ((strlen($result) > 0) && ($status == 0)) { $uid = intval($result,10); syslog(LOG_ALERT, "id uid: $uid"); } else { syslog(LOG_ALERT, "id uid: failure"); $uid = -1; } return $uid; } // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){ $mismatch = 1; // We have two different passwords $reset = trim($_POST["reset"]); syslog(LOG_ALERT, "Reset: $reset"); if ($reset === "Reset") { $save_password = ""; $reset = ""; $username = $password = $save_password = ""; $username_err = $password_err = $confirm_password_err = ""; goto err_exit; } $save_password = trim($_POST["save_password"]); syslog(LOG_ALERT, "Enter post: save_password = $save_password"); // Validate username if(strlen(trim($_POST["username"])) == 0){ $username_err = "Please enter a username."; } else { $username = trim($_POST["username"]); syslog(LOG_ALERT, "Enter username check: $username"); $id = chk_username($username); syslog(LOG_ALERT, "after username check: chk_username $id"); if ($id > -1 && $id < 1000) { $username_err = "User-id is in use by the system -- chose another"; } } // Validate password if(strlen(trim($_POST["password"])) == 0){ $password_err = "Please enter a password."; $mismatch = 0; } else { $password = trim($_POST["password"]); if (strlen($save_password) == 0) { $mismatch = 0; $cmd = "echo '" . $password . "' | /usr/bin/pwscore 2>&1"; $handle = popen($cmd, 'r'); $result = trim(fread($handle,4192)); if (pclose($handle) === 0) { $pwdscore = "Password score: " . $result; $save_password = $password; $password = ""; $conftxt = "Re-Enter"; } else { $conftxt = "Re-Enter"; $password_err = $result . ". Confirm password if you really want this." . " Click reset to start again"; $save_password = $password; $password = ""; syslog(LOG_ALERT, "Need password confirmation"); } syslog(LOG_ALERT, "pwscore: score: $pwdscore msg = $password_err"); } } if ((strlen($password) != 0) && ($password === $save_password) && (strlen($username) != 0)) { syslog(LOG_ALERT, "Have password: $password username: $password"); if((strlen($username_err) == 0) && (strlen($password_err) == 0) && (strlen($confirm_password_err) == 0)){ // Create user in sudo group $cmd = "/usr/sbin/useradd -U -m -G sudo,dialout,disk -s /bin/bash " . $username . " 2>&1"; syslog(LOG_ALERT, "useradd cmd: $cmd"); $handle = popen($cmd, 'r'); $username_err = trim(fread($handle, 4192)); $status = pclose($handle); syslog(LOG_ALERT, "useradd: status: $status result: $result"); $uid = chk_username($username); $cmd = "/usr/bin/id " . $username . " 2>/dev/null"; if (! ($uid > 999)) { syslog(LOG_ALERT, "useradd: system user-id cannot be chosen: $username uid: $uid"); $username_err = "useradd: system user-id cannot be chosen: $username uid: $uid"; $username = ""; $save_password = ""; $password = ""; goto err_exit; } // Must have uid > 999 $tmpfile = tempnam("/var/volatile/tmp","commission"); $cmd = "/usr/bin/passwd " . $username . " 2>&1 >$tmpfile"; $handle = popen($cmd, 'w'); $pwdtxt = $password . "\n" . $password; fwrite($handle, $pwdtxt); $status = pclose($handle); syslog(LOG_ALERT, "set passwd: status: $status result: $result"); $cmd = "/bin/cat $tmpfile"; $handle = popen($cmd, 'r'); $result2 = trim(fread($handle, 4192)); $status2 = pclose($handle); if (($result2 != 0) || (strlen($result2) > 0)) syslog(LOG_ALERT, "read passwd log: status: $status2 result: $result2"); $cmd = "/sbin/mts-ubpasswd -u " . $password; $handle = popen($cmd, 'r'); $result3 = trim(fread($handle, 4192)); $status3 = pclose($handle); if ($status != 0) syslog(LOG_ALERT, "mts-ubpasswd: status: $status result: $result"); else syslog(LOG_ALERT, "mts-ubpasswd: set u-boot password"); if ($status == 0) { $finished = "Commissioning Complete"; $password_err = $result2; $username_err = $result; // Disable commissioning $cmd = "echo 'ENABLED=\"no\"' >/run/mt-commission 2>&1"; $handle = popen($cmd, 'r'); $result = trim(fread($handle, 4192)); $status = pclose($handle); if ($status > 0) { syslog(LOG_ALERT, "configure commissioning off failure: command: $cmd"); syslog(LOG_ALERT, "passwd: status: $status result: $result"); } else { // shut off web server $cmd = "/usr/sbin/start-stop-daemon -S -p /var/run/commissionoff.pid -b -a /bin/bash -- -c " . "/usr/libexec/commission/off.sh"; syslog(LOG_ALERT, "turn off web server: command: $cmd"); $handle = popen($cmd, 'r'); $result = trim(fread($handle, 4192)); $status = pclose($handle); if ($status > 0) { syslog(LOG_ALERT, "turn off commissioning service: command: $cmd"); syslog(LOG_ALERT, "stopping service: status: $status result: $result"); } } } else { $finished = "Errors: " . $result; $save_password = ""; $password = ""; $password_err = $result2; $username_err = $result; } } // Create user, set password } else if ($mismatch === 1) { $save_password = ""; $password = ""; $password_err = "Mismatch"; } syslog(LOG_ALERT, "Leave post: save_password = $save_password"); err_exit: // Is there another way to return and leave the web form in good shape? } ?> Commission Multi-Tech mLinux

Commission Multi-Tech mLinux

Product-ID:
Device-ID:

" method="post">