Skip to content
Snippets Groups Projects
Commit cf69008c authored by Bob Mottram's avatar Bob Mottram
Browse files

Setting password for new users via webadmin

parent af07f939
No related branches found
No related tags found
No related merge requests found
......@@ -47,6 +47,11 @@ done
ADD_USERNAME=$1
SSH_PUBLIC_KEY="$2"
password_param=
if [[ "$2" == "password="* ]]; then
SSH_PUBLIC_KEY=
password_param=$(echo "$2" | awk -F '=' '{print $2}')
fi
GPG_KEYSERVER='hkp://keys.gnupg.net'
SSH_PORT=2222
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
......@@ -71,7 +76,11 @@ fi
# Minimum number of characters in a password
MINIMUM_PASSWORD_LENGTH=$(grep 'MINIMUM_PASSWORD_LENGTH=' "/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-passwords" | head -n 1 | awk -F '=' '{print $2}')
NEW_USER_PASSWORD="$(create_password "${MINIMUM_PASSWORD_LENGTH}")"
if [ ! "$password_param" ]; then
NEW_USER_PASSWORD="$(create_password "${MINIMUM_PASSWORD_LENGTH}")"
else
NEW_USER_PASSWORD="$password_param"
fi
chmod 600 /etc/shadow
chmod 600 /etc/gshadow
useradd -m -p "$NEW_USER_PASSWORD" -s /bin/bash "$ADD_USERNAME"
......
......@@ -1076,20 +1076,24 @@ function valid_username_characters {
function add_remove_users {
if [ -f "$new_user_file" ]; then
new_username=$(cat "$new_user_file")
new_username=$(awk -F ',' '{print $1}' < "$new_user_file")
if [ ${#new_username} -ge 3 ]; then
if [ ${#new_username} -le 32 ]; then
if valid_username_characters "$new_username"; then
if [ ! -d "/home/$new_username" ]; then
if [[ $(is_valid_user "$new_username") == "1" ]]; then
new_password=$(awk -F ',' '{print $2}' < "$new_user_file")
check_for_existing_processes $new_user_script
{ echo "/usr/local/bin/${PROJECT_NAME}-adduser $new_username > $webadmin_install_dir/log.txt";
{ echo "/usr/local/bin/${PROJECT_NAME}-adduser $new_username password=$new_password > $webadmin_install_dir/log.txt";
echo "exit 0"; } >> $new_user_script
chmod +x $new_user_script
# run in a separate process
./$new_user_script &
new_password=
fi
fi
fi
......
......@@ -62,6 +62,12 @@
font-size: 90%;
}
.passwordtext {
color: black;
font-size: 120%;
font-weight: bold;
}
button {
border: none;
outline: 0;
......@@ -110,9 +116,11 @@
<img id="domainicon" class="img-responsive" src="images/admin_users.png">
<h2>Add a new user</h2>
<p class="domaintext">The new user is being added. This may take a minute or two.</p>
<p class="domaintext">The new user is being added. Write down or save their password.</p>
<p class="passwordtext">NEWPASSWORD</p>
<p class="domaintext">This may take a minute or two.</p>
<form action="users.php" method="post">
<form action="users.html" method="post">
<input type="submit" name="submitnewuserconfirm" value="Go Back">
</form>
......
......@@ -11,10 +11,15 @@ if (isset($_POST['submitnewuser'])) {
$output_filename = "new_user_invalid.html";
}
else {
// Don't rely on php PRNG
$newpassword = exec("openssl rand -base64 32 | tr -dc A-Za-z0-9 | head -c 10 ; echo -n ''");
$new_user_file = fopen(".new_user.txt", "w") or die("Unable to write to new_user file");
fwrite($new_user_file, $username);
fwrite($new_user_file, $username.",".$newpassword);
fclose($new_user_file);
exec('cp new_user_confirm_template.html new_user_confirm.html');
exec('sed -i "s|NEWPASSWORD|'.$newpassword.'|g" new_user_confirm.html');
$output_filename = "new_user_confirm.html";
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment