Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #This program reads the user file then,
- #sets a random password the user must change at login.
- #results of username / password are pushed to a file,
- #which seems insecure, but it was requested.
- # Define the input file containing usernames, one per line
- input_file="users.txt"
- # Define the output file for username and password pairs
- output_file="user_passwords.txt"
- # Check if the input file exists
- if [ ! -f "$input_file" ]; then
- echo "Input file '$input_file' not found."
- exit 1
- fi
- # Check if the output file exists and remove it if it does
- if [ -f "$output_file" ]; then
- rm "$output_file"
- fi
- # Read each name from the input file and create a user
- while IFS= read -r name; do
- # Generate a random password (change this to fit your requirements)
- password=$(openssl rand -base64 12)
- #write a thing to see if the username already exists.
- #if it exists, list , move on, if it doesnt exist, add it with parameters
- chage -l "$name" >> "$output_file"
- # Create the user with a random password
- sudo useradd -m -s /bin/bash -p "$(echo "$password" | openssl passwd -1 -stdin)" "$name"
- # Force the user to change their password on first login and every 60 days there after
- sudo chage -d 0 -M 60 "$name"
- # Write the username and password to the output file
- echo "Username: $name" >> "$output_file"
- echo "Password: $password" >> "$output_file"
- echo "====================" >> "$output_file"
- echo "User '$name' created with a random password."
- done < "$input_file"
- echo "Usernames and passwords are saved in '$output_file'."
Add Comment
Please, Sign In to add comment