Каждый раз настраивать нового юзера вручную - скучно. Особенно если нужно: создать пользователя, выдать sudo, настроить SSH-доступ, прописать алиасы и окружение
🛠 Решается скриптом (create_user.sh):
#!/bin/bash
USERNAME="$1"
PUBKEY_URL="$2" # URL к публичному ключу или путь к файлу
if [[ -z "$USERNAME" || -z "$PUBKEY_URL" ]]; then
echo "Usage: $0 <username> <pubkey_url_or_file>"
exit 1
fi
# 1. Создание пользователя
useradd -m -s /bin/bash "$USERNAME"
# 2. Добавление в sudoers
usermod -aG sudo "$USERNAME"
# 3. Настройка SSH
HOME_DIR="/home/$USERNAME"
mkdir -p "$HOME_DIR/.ssh"
chmod 700 "$HOME_DIR/.ssh"
# Подгружаем ключ
if [[ "$PUBKEY_URL" =~ ^http ]]; then
curl -s "$PUBKEY_URL" -o "$HOME_DIR/.ssh/authorized_keys"
else
cp "$PUBKEY_URL" "$HOME_DIR/.ssh/authorized_keys"
fi
chmod 600 "$HOME_DIR/.ssh/authorized_keys"
chown -R "$USERNAME:$USERNAME" "$HOME_DIR/.ssh"
# 4. Aliases и welcome message
cat <<EOF >> "$HOME_DIR/.bashrc"
# --- Custom Setup ---
alias ll='ls -alF'
alias gs='git status'
echo "Добро пожаловать, $USERNAME!"
EOF
chown "$USERNAME:$USERNAME" "$HOME_DIR/.bashrc"
echo "[+] Пользователь $USERNAME создан и готов к работе!"
▪️ Пример использования:
./create_user.sh dev1 https://example.com/dev1.pub
или
./create_user.sh admin1 ~/.ssh/id_rsa.pub
Скрипт подходит для CI/CD, dev-серверов, временных пользователей или быстрого поднятия окружения в cloud-инстансах.
BashTex 📱 #bash