Skip to content

Instantly share code, notes, and snippets.

@reduardo7
Created November 1, 2017 21:08
Show Gist options
  • Save reduardo7/8f6c513b7403cd661a2dfc0d1a823691 to your computer and use it in GitHub Desktop.
Save reduardo7/8f6c513b7403cd661a2dfc0d1a823691 to your computer and use it in GitHub Desktop.
Create Unix user with permissions
# Run as ROOT: $ sudo su
(
##########
# Config #
##########
# Required
PTECH_SETUP_USER_NAME=username
# Optional
PTECH_SETUP_GROUP_ADMIN_NAME=sysadmin
# Optional
PTECH_SETUP_SSH_PUB='ssh-rsa AAAAB3NzaC1...FaNyNaCgp7Wv username@patagonian.it'
#########
# Utils #
#########
@log() {
echo "# $*"
}
#################
# User creation #
#################
@log Create user ${PTECH_SETUP_USER_NAME}
useradd --create-home -s /bin/bash ${PTECH_SETUP_USER_NAME}
#######
# SSH #
#######
if [ ! -z "${PTECH_SETUP_SSH_PUB}" ]; then
@log Setup SSH...
mkdir /home/${PTECH_SETUP_USER_NAME}/.ssh
echo "${PTECH_SETUP_SSH_PUB}" >> /home/${PTECH_SETUP_USER_NAME}/.ssh/authorized_keys
chown -R ${PTECH_SETUP_USER_NAME}:${PTECH_SETUP_USER_NAME} /home/${PTECH_SETUP_USER_NAME}/.ssh
chmod 700 /home/${PTECH_SETUP_USER_NAME}/.ssh
chmod 640 /home/${PTECH_SETUP_USER_NAME}/.ssh/authorized_keys
fi
###############
# Admin Group #
###############
if [ ! -z "${PTECH_SETUP_GROUP_ADMIN_NAME}" ]; then
PTECH_SETUP_SUDO_LINE_KEY="%${PTECH_SETUP_GROUP_ADMIN_NAME}"
PTECH_SETUP_SUDO_LINE="${PTECH_SETUP_SUDO_LINE_KEY} ALL=(ALL:ALL) NOPASSWD: ALL"
PTECH_SETUP_SUDO_FILE="/etc/sudoers.d/${PTECH_SETUP_GROUP_ADMIN_NAME}"
@log Create ${PTECH_SETUP_GROUP_ADMIN_NAME} group...
groupadd ${PTECH_SETUP_GROUP_ADMIN_NAME}
@log Add ${PTECH_SETUP_USER_NAME} to group ${PTECH_SETUP_GROUP_ADMIN_NAME}...
usermod -aG ${PTECH_SETUP_GROUP_ADMIN_NAME} ${PTECH_SETUP_USER_NAME}
touch ${PTECH_SETUP_SUDO_FILE}
if grep -q "${PTECH_SETUP_SUDO_LINE_KEY}" ${PTECH_SETUP_SUDO_FILE}
then
@log ${PTECH_SETUP_SUDO_FILE} already configured
else
@log Add line "'${PTECH_SETUP_SUDO_LINE}'" to ${PTECH_SETUP_SUDO_FILE}
echo "${PTECH_SETUP_SUDO_LINE}" >> ${PTECH_SETUP_SUDO_FILE}
# WARNING! If next is actived, Copy & Paste the function call ONE BY ONE!
#visudo -f ${PTECH_SETUP_SUDO_FILE}
fi
fi
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment