net/script user acc

62 lines
3.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Скрипт для создания локальных пользователей на серверах и маршрутизаторах
set -e # Завершить выполнение при ошибке
echo "=== Скрипт создания локальных пользователей ==="
# Проверка запуска от root
if [[ $EUID -ne 0 ]]; then
echo "Ошибка: Этот скрипт должен быть запущен от пользователя root." >&2
exit 1
fi
# --- Настройки для маршрутизаторов ---
if [[ "$DEVICE_TYPE" == "router" ]]; then
USER_NAME="net_admin"
# USER_ID не указан в инструкции для маршрутизаторов, поэтому не используем
PASSWORD="12345678" # ВНИМАНИЕ: Хранить пароль в открытом виде небезопасно!
SUDO_RULE="net_admin ALL=(ALL)NOPASSWD: ALL"
echo "Настройка для типа устройства: ROUTER (создание $USER_NAME)"
# Проверка, существует ли пользователь
if id "$USER_NAME" &>/dev/null; then
echo "Пользователь $USER_NAME уже существует."
read -p "Вы хотите пересоздать его? (y/N): " -n 1 -r RECREATE_USER
echo
if [[ $RECREATE_USER =~ ^[Yy]$ ]]; then
echo "Удаление существующего пользователя $USER_NAME..."
userdel -r "$USER_NAME"
else
echo "Пропуск создания пользователя $USER_NAME."
fi
fi
# Создание пользователя, если он не существует или был удален
if ! id "$USER_NAME" &>/dev/null; then
echo "Создание пользователя $USER_NAME..."
useradd "$USER_NAME" # Не указываем UID echo "Пользователь $USER_NAME создан."
fi
# Установка пароля
echo "Установка пароля для $USER_NAME..."
echo "$USER_NAME:$PASSWORD" | chpasswd
echo "Пароль установлен."
# Добавление права sudo без пароля
SUDOERS_FILE="/etc/sudoers.d/user-$USER_NAME-permissions" # Лучше создать отдельный файл
echo "Добавление разрешений sudo для $USER_NAME в $SUDOERS_FILE..."
# Проверяем, существует ли уже правило
if grep -Fxq "$SUDO_RULE" /etc/sudoers || [[ -f "$SUDOERS_FILE" ]] && grep -Fxq "$SUDO_RULE" "$SUDOERS_FILE"; then
echo "Правило sudo для $USER_NAME уже существует."
else
# echo "$SUDO_RULE" >> /etc/sudoers # Не рекомендуется редактировать /etc/sudoers напрямую
echo "$SUDO_RULE" > "$SUDOERS_FILE"
chmod 440 "$SUDOERS_FILE"
echo "Разрешения sudo добавлены в $SUDOERS_FILE."
fi
echo "Настройка для маршрутизатора завершена."
fi
echo "=== Скрипт завершен ==="