It is likely that in future I will be implementing SSH access and generally changing the way that users are handled by ZPanel (on the *NIX platform). Currently all user accounts across ZPanel are ‘virtual’ accounts and not system accounts and for various reason’s I may want to change this in future.
I have written a handle shell script to automate the system account creation of users on *NIX – I thought I’d post this up as an example:-
#!/bin/bash # Script to add a user to *NIX system by Bobby Allen, 14/11/2012 if [ $(id -u) -eq 0 ]; then read -p "Enter username: " username read -s -p "Enter password: " password egrep "^$username" /etc/passwd >/dev/null if [ $? -eq 0 ]; then echo "$username exists!" exit 1 else pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) useradd -m -p $pass $username [ $? -eq 0 ] && echo "User has been added to this system!" || echo "Failed to add the user!" fi else echo "Only root isp permitted add a user to this system" exit 2 fi
Obviously the cool thing about this shell script is that it can be used to generate user accounts without the requirement for human interaction ie. when prompted for the password 🙂
The above shell script requires perl to be installed as it uses the perl crypt() function to generate a UNIX hash for the given password.
Although the above code is alot larger than it needs to be I just wanted to demonstrate the as a ‘copy & paste’ example.
The main magic is done here:-
useradd -m -p encryptedPassword username
But is important that you check that the username is not already taken etc. first and the generation of the encrypted password.