From fcb9b2d1f366a61994412b219d17e90bc0c87ddb Mon Sep 17 00:00:00 2001 From: Danil Khamitov Date: Tue, 3 Mar 2026 09:21:39 +0000 Subject: [PATCH] Edit script user acc --- localuser | 62 +++++++++++++++++++++++++ script user acc | 121 ------------------------------------------------ 2 files changed, 62 insertions(+), 121 deletions(-) create mode 100644 localuser delete mode 100644 script user acc diff --git a/localuser b/localuser new file mode 100644 index 0000000..7bc472f --- /dev/null +++ b/localuser @@ -0,0 +1,62 @@ +#!/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 "=== Скрипт завершен ===" \ No newline at end of file diff --git a/script user acc b/script user acc deleted file mode 100644 index 159b257..0000000 --- a/script user acc +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash - -# Скрипт для создания локальных пользователей на серверах и маршрутизаторах - -set -e # Завершить выполнение при ошибке - -echo "=== Скрипт создания локальных пользователей ===" - -# Проверка запуска от root -if [[ $EUID -ne 0 ]]; then - echo "Ошибка: Этот скрипт должен быть запущен от пользователя root." >&2 - exit 1 -fi - -# --- Аргументы скрипта --- -# Ожидается тип устройства: "server" или "router" -DEVICE_TYPE="$1" - -if [[ "$DEVICE_TYPE" != "server" ]] && [[ "$DEVICE_TYPE" != "router" ]]; then - echo "Использование: $0 " - echo " server: Создает пользователя sshuser для серверов (HQ-SRV, BR-SRV)" - echo " router: Создает пользователя net_admin для маршрутизаторов (HQ-RTR, BR-RTR)" - exit 1 -fi - -# --- Настройки для серверов --- -if [[ "$DEVICE_TYPE" == "server" ]]; then - USER_NAME="sshuser" - USER_ID="1010" - PASSWORD="P@ssw0rd" # ВНИМАНИЕ: Хранить пароль в открытом виде небезопасно! - SUDO_RULE="sshuser ALL=(ALL)NOPASSWD: ALL" - echo "Настройка для типа устройства: SERVER (создание $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 с UID $USER_ID..." useradd -u "$USER_ID" "$USER_NAME" - 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 - -# --- Настройки для маршрутизаторов --- -if [[ "$DEVICE_TYPE" == "router" ]]; then - USER_NAME="net_admin" - # USER_ID не указан в инструкции для маршрутизаторов, поэтому не используем - PASSWORD="P@$$w0rd" # ВНИМАНИЕ: Хранить пароль в открытом виде небезопасно! - 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 "=== Скрипт завершен ===" \ No newline at end of file