Skip to content

Commit daea049

Browse files
committed
made create user more script friendly
1 parent 7fdec4e commit daea049

1 file changed

Lines changed: 20 additions & 18 deletions

File tree

New-User-Creator/create_user.sh

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
#!/bin/bash
22

3+
# Ensure the script is run with root privileges
4+
if [[ $EUID -ne 0 ]]; then
5+
echo "This script must be run as root. Use sudo."
6+
exit 1
7+
fi
8+
39
echo "Creating a new user account..."
410

511
# Loop until a valid username is entered
6-
echo "Enter a username (only letters, numbers, underscores, or dashes):"
712
while true; do
8-
read -rp "Please Enter a new username: " newuser
13+
read -rp "Enter a username (letters, numbers, underscores, dashes): " newuser
914

10-
# Check username (allowing lowercase, uppercase, numbers, underscores, and dashes)
15+
# Validate username
1116
if [[ ! "$newuser" =~ ^[A-Za-z_][A-Za-z0-9_-]*$ ]]; then
1217
echo "Invalid username. Use only letters, numbers, underscores, or dashes."
1318
continue
@@ -19,7 +24,6 @@ while true; do
1924
continue
2025
fi
2126

22-
# If both checks pass, break out of loop
2327
break
2428
done
2529

@@ -33,28 +37,26 @@ while true; do
3337
if [[ "$password" == "$password2" ]]; then
3438
break
3539
else
36-
echo "Passwords do not match. Please try again."
40+
echo "Passwords do not match. Try again."
3741
fi
3842
done
3943

40-
# Create user first (without password)
41-
sudo adduser --disabled-password --gecos "" \
42-
--groups plugdev,dialout,video,audio,input \
43-
"$newuser" &>/dev/null
44+
# Create the user with home directory and groups
45+
useradd -m -G plugdev,dialout,video,audio,input "$newuser"
4446

45-
# Set the password
46-
echo "$newuser:$password" | sudo chpasswd || {
47-
echo "Failed to set password with chpasswd. Trying interactive passwd..."
48-
sudo passwd "$newuser"
49-
}
47+
# Set the password safely
48+
echo "$newuser:$password" | chpasswd
5049

51-
# Set the entered password
52-
echo "$newuser:$password" | sudo chpasswd
50+
# Verify password was set
51+
if [ $? -eq 0 ]; then
52+
echo "Password set successfully."
53+
else
54+
echo "Failed to set password! You may need to run 'sudo passwd $newuser'"
55+
fi
5356

5457
# Completion messages
5558
echo "User '$newuser' has been created."
56-
echo "Password has been set by the user."
5759
echo "Home directory: /home/$newuser"
5860
echo "You can now SSH using: ssh $newuser@clemsoncure.duckdns.org"
5961

60-
exit
62+
exit 0

0 commit comments

Comments
 (0)