Skip to content

Instantly share code, notes, and snippets.

@ismailakbudak
Last active February 7, 2021 18:17
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ismailakbudak/e2cbcd17c54967b9b387 to your computer and use it in GitHub Desktop.
Save ismailakbudak/e2cbcd17c54967b9b387 to your computer and use it in GitHub Desktop.
deploy-user.sh
# Deploy group
deploy_group=deploy
# Deploy user
deploy_user=deploy
# Github usernames for access with ssh to deploy user
usernames=(tayfunoziserikan ismailakbudak)
# Check user is exist
id -u $deploy_user &> /dev/null
if [ $? -ne 0 ]
then
echo "* Add $deploy_group group"
groupadd $deploy_group
echo "* Creating user $deploy_user"
useradd -m -g $deploy_group -s /bin/bash $deploy_user
echo "* Adding user $deploy_user to sudoers"
chmod +w /etc/sudoers
echo "$deploy_user ALL=(ALL) ALL" >> /etc/sudoers
chmod -w /etc/sudoers
else
echo "* $deploy_user user already exists"
fi
# Check user is exist, maybe some errors occured
id -u $deploy_user &> /dev/null
if [ $? -ne 0 ]
then
echo "* $deploy_user user does not exists"
else
# Prepare ssh keys environment
echo "* Add .ssh directory to $deploy_user"
test -d /home/$deploy_user/.ssh
if [ $? -ne 0 ]
then
mkdir /home/$deploy_user/.ssh
# change user permisisions
# 700 => (owner read/write/execute, group none, other none)
chmod 700 /home/$deploy_user/.ssh
chown $deploy_user /home/$deploy_user/.ssh
chgrp $deploy_group /home/$deploy_user/.ssh
fi
echo "* Get usernames public keys from GitHub and add them to $deploy_user authorized_keys"
for username in ${usernames[@]}; do
name=$username.keys
wget https://github.com/$name --no-check-certificate -O $name
cat $name >> /home/$deploy_user/.ssh/authorized_keys
rm $name # remove temprory file
done
# change user permisisions
# 600 => (owner read/write, group none, other none)
chmod 600 /home/$deploy_user/.ssh/authorized_keys
chown $deploy_user /home/$deploy_user/.ssh/authorized_keys
chgrp $deploy_group /home/$deploy_user/.ssh/authorized_keys
echo "* Completed..."
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment