29 lines
868 B
Bash
29 lines
868 B
Bash
#!/bin/bash
|
|
SRC=$1
|
|
DEST=$2
|
|
|
|
if [ $# -ne 2 ]; then
|
|
echo "Usage: cloneuser source_user destination_user"
|
|
exit 1
|
|
fi
|
|
if ! grep -q $SRC /etc/passwd ;then echo "Source user doesn't exist!"; exit 1; fi
|
|
if grep -q $DEST /etc/passwd ;then echo "Destination user already exists!"; exit 1; fi
|
|
|
|
SRC_GROUPS=`id -Gn ${SRC}`
|
|
SRC_SHELL=$(awk -F : -v name=${SRC} '(name == $1) { print $7 }' /etc/passwd)
|
|
RAND_PW=`date +%s | sha256sum | base64 | head -c 32 ; echo`
|
|
|
|
echo "Creating user $DEST with a random password"
|
|
useradd --shell ${SRC_SHELL} --password ${RAND_PW} --create-home ${DEST}
|
|
for grp in ${SRC_GROUPS};do
|
|
if [ "$grp" != "$SRC" ]; then
|
|
echo "Adding user $DEST to group $grp."
|
|
usermod -a -G $grp ${DEST}
|
|
fi
|
|
done
|
|
echo "Finished. Please set an actual password for $DEST if you want them to be able to log in."
|
|
|
|
|
|
|
|
|