Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save grzegorzblaszczyk/74487eb42e18c4c77bc8b18590ae9a7f to your computer and use it in GitHub Desktop.

Select an option

Save grzegorzblaszczyk/74487eb42e18c4c77bc8b18590ae9a7f to your computer and use it in GitHub Desktop.
Create user with proper authorized_keys file
#!/usr/bin/env bash
## Bash docs:
##
## Create user with authorized_keys copied from root user
NEW_USER_NAME="$1"
if [ "x${NEW_USER_NAME}" == "x" ]; then
echo "Usage:"
echo "${0} [new_user_name] [shell like /bin/bash or /bin/sh *]"
exit 1
fi
CHMOD=`which chmod`
CHOWN=`which chown`
CP=`which cp`
MKDIR=`which mkdir`
SUDO=`which sudo`
USERADD=`which useradd`
VISUDO=`which visudo`
NEW_USER_SHELL="${2:-/bin/bash}"
FROM_USER_PATH="/root"
${USERADD} -d /home/${NEW_USER_NAME} -s /bin/bash -m ${NEW_USER_NAME} && \
${MKDIR} /home/${NEW_USER_NAME}/.ssh && \
${CHOWN} ${NEW_USER_NAME}:${NEW_USER_NAME} /home/${NEW_USER_NAME}/.ssh && \
${CHMOD} 700 /home/${NEW_USER_NAME}/.ssh && \
${CP} ${FROM_USER_PATH}/.ssh/authorized_keys /home/${NEW_USER_NAME}/.ssh && \
${CHOWN} ${NEW_USER_NAME}:${NEW_USER_NAME} /home/${NEW_USER_NAME}/.ssh/authorized_keys && \
${CHMOD} 600 /home/${NEW_USER_NAME}/.ssh/authorized_keys
echo "${NEW_USER_NAME} ALL=(ALL) NOPASSWD: ALL" | ${SUDO} EDITOR='tee -a' ${VISUDO}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment