Загрузить файлы в «/»
This commit is contained in:
+79
@@ -0,0 +1,79 @@
|
||||
et -euo pipefail
|
||||
|
||||
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..."
|
||||
|
||||
if systemctl list-unit-files | grep -q "^ssh.service"; then
|
||||
systemctl restart ssh
|
||||
elif systemctl list-unit-files | grep -q "^sshd.service"; then
|
||||
systemctl restart sshd
|
||||
else
|
||||
echo "Не удалось определить имя службы SSH."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo "Настройка завершена успешно."
|
||||
echo "Пользователь: $USER_NAME"
|
||||
echo "Репозиторий: $REPO_URL"
|
||||
echo "========================================"
|
||||
Reference in New Issue
Block a user