From 6420e7fbbf3a1020fb75f222b21d38e522e7b67c Mon Sep 17 00:00:00 2001 From: John Klug Date: Wed, 27 Nov 2019 11:13:23 -0600 Subject: Fix passwd command execution --- www/pages/index.php | 147 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 90 insertions(+), 57 deletions(-) diff --git a/www/pages/index.php b/www/pages/index.php index 3dcb684..4a9d6b1 100644 --- a/www/pages/index.php +++ b/www/pages/index.php @@ -1,6 +1,9 @@ &1"; + $handle = popen($cmd, 'r'); + $result = 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"); } - syslog(LOG_ALERT, "pwscore: score: $pwdscore msg = $password_err"); } - } - - if (!empty($password) && ($password === $save_password) && ! empty($username)) { - syslog(LOG_ALERT, "Have password: $password username: $password"); - if(empty($username_err) && empty($password_err) && empty($confirm_password_err)){ - // 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'); - $result = fread($handle, 4192); - $status = pclose($handle); - syslog(LOG_ALERT, "useradd: status: $status result: $result"); - $cmd = "/usr/bin/passwd" . $username . " 2>&1"; - $handle = popen($cmd, 'r'); - $pwdtxt = $password . "\n" . $password; - $result = fwrite($handle, $pwdtxt); - pclose($handle); - syslog(LOG_ALERT, "passwd: status: $status result: $result"); - $finished = "Commisioning Complete"; + + if (!empty($password) && ($password === $save_password) && ! empty($username)) { + syslog(LOG_ALERT, "Have password: $password username: $password"); + if(empty($username_err) && empty($password_err) && empty($confirm_password_err)){ + // 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'); + $result = trim(fread($handle, 4192)); + $status = pclose($handle); + syslog(LOG_ALERT, "useradd: status: $status result: $result"); + $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); + $cmd = "/bin/cat $tmpfile"; + $handle = popen($cmd, 'r'); + $result2 = trim(fread($handle, 4192)); + $status2 = pclose($handle); + syslog(LOG_ALERT, "passwd: status: $status result: $result"); + if ($status === 0) { + $finished = "Commissioning Complete"; + $password_err = $result2; + $username_err = $result; + } else { + $finished = "Errors: " . $result; + $save_password = ""; + $password = ""; + $password_err = $result2; + $username_err = $result; + } + } + } else if ($mismatch === 1) { + $save_password = ""; + $password = ""; + $password_err = "Mismatch"; } - } else if ($mismatch === 1) { - $save_password = ""; - $password_err = "Mismatch"; + syslog(LOG_ALERT, "Leave post: save_password = $save_password"); } - syslog(LOG_ALERT, "Leave post: save_password = $save_password"); } ?> @@ -89,7 +122,7 @@ if($_SERVER["REQUEST_METHOD"] == "POST"){ - Commision Multi-Tech mLinux + Commission Multi-Tech mLinux