Edit script user acc
This commit is contained in:
parent
6a950a9d52
commit
fcb9b2d1f3
62
localuser
Normal file
62
localuser
Normal file
|
|
@ -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 "=== Скрипт завершен ==="
|
||||
121
script user acc
121
script user acc
|
|
@ -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 <server|router>"
|
||||
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 "=== Скрипт завершен ==="
|
||||
Loading…
Reference in a new issue