82 lines
2.1 KiB
Plaintext
Executable File
82 lines
2.1 KiB
Plaintext
Executable File
clear
|
|
set -euo pipefail
|
|
|
|
echo "==> Обновление списка пакетов..."
|
|
apt-get update
|
|
|
|
echo "==> Обновление системы..."
|
|
DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
|
|
|
|
|
|
USER_NAME="lobanov_v"
|
|
REPO_URL="https://git.lobanoffhomecloud.ru/lobanov_v/easy_ssh---zabbix_agent2.git"
|
|
CLONE_DIR="/tmp/easy_ssh---zabbix_agent2"
|
|
|
|
echo "==> Создание пользователя..."
|
|
|
|
if ! id "$USER_NAME" &>/dev/null; then
|
|
useradd -m -s /bin/bash "$USER_NAME"
|
|
echo "Пользователь $USER_NAME создан."
|
|
else
|
|
echo "Пользователь $USER_NAME уже существует."
|
|
fi
|
|
|
|
echo "==> Добавление пользователя в группу sudo..."
|
|
|
|
if getent group sudo >/dev/null; then
|
|
usermod -aG sudo "$USER_NAME"
|
|
elif getent group wheel >/dev/null; then
|
|
usermod -aG wheel "$USER_NAME"
|
|
fi
|
|
|
|
echo "==> Настройка sudo без пароля..."
|
|
|
|
echo "$USER_NAME ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USER_NAME
|
|
chmod 440 /etc/sudoers.d/$USER_NAME
|
|
visudo -cf /etc/sudoers.d/$USER_NAME
|
|
|
|
echo "==> Установка git..."
|
|
|
|
if ! command -v git >/dev/null; then
|
|
apt-get update
|
|
apt-get install -y git
|
|
fi
|
|
|
|
echo "==> Клонирование репозитория..."
|
|
|
|
rm -rf "$CLONE_DIR"
|
|
git clone "$REPO_URL" "$CLONE_DIR"
|
|
|
|
echo "==> Настройка SSH-ключей..."
|
|
|
|
mkdir -p "/home/$USER_NAME/.ssh"
|
|
|
|
cp "$CLONE_DIR/authorized_keys" "/home/$USER_NAME/.ssh/authorized_keys"
|
|
|
|
chmod 700 "/home/$USER_NAME/.ssh"
|
|
chmod 600 "/home/$USER_NAME/.ssh/authorized_keys"
|
|
|
|
chown -R "$USER_NAME:$USER_NAME" "/home/$USER_NAME/.ssh"
|
|
|
|
echo "==> Замена sshd_config..."
|
|
|
|
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F-%H%M%S)
|
|
|
|
cp "$CLONE_DIR/sshd_config" /etc/ssh/sshd_config
|
|
|
|
|
|
echo "==> Проверка конфигурации SSH..."
|
|
sshd -t
|
|
|
|
echo "==> Перезапуск службы SSH..."
|
|
systemctl restart ssh
|
|
|
|
echo "Готово."
|
|
|
|
echo
|
|
echo "========================================"
|
|
echo "Настройка завершена успешно."
|
|
echo "Пользователь: $USER_NAME"
|
|
echo "Репозиторий: $REPO_URL"
|
|
echo "========================================"
|