vm:ubuntu:script:02-root_user

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
vm:ubuntu:script:02-root_user [2025/09/21 21:10] adminvm:ubuntu:script:02-root_user [2025/09/21 21:25] (текущий) admin
Строка 7: Строка 7:
 **Характеристики:** **Характеристики:**
   * **Версия:** 1.0   * **Версия:** 1.0
-  * **Автор:** Nick 
   * **Совместимость:** Ubuntu 18.04+, Debian 10+   * **Совместимость:** Ubuntu 18.04+, Debian 10+
   * **Требования:** sudo права   * **Требования:** sudo права
Строка 21: Строка 20:
   * ✅ Проверка результатов и рекомендации по безопасности   * ✅ Проверка результатов и рекомендации по безопасности
  
-===== Установка и запуск =====+===== Создание и запуск скрипта =====
  
-==== Шаг 1: Создание файла скрипта ====+Создание файла скрипта в домашней директории текущего пользователя:
  
 <code bash> <code bash>
-nano /tmp/activate_root.sh+cd ~ 
 +nano activate_root.sh
 </code> </code>
  
-==== Шаг 1: Создание файла скрипта ====+Скопируйте код скрипта в созданный файл, установите права выполнения и запустите:
  
 <code bash> <code bash>
-nano /tmp/activate_root.sh+chmod +x activate_root.sh 
 +sudo ./activate_root.sh
 </code> </code>
  
-**Примечание:** Скопируйте содержимое скрипта в созданный файл+**ВАЖНО!** Скрипт должен запускаться с правами sudo
  
 ===== Код скрипта ===== ===== Код скрипта =====
Строка 41: Строка 42:
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
- 
 # Скрипт активации учетной записи root на Ubuntu # Скрипт активации учетной записи root на Ubuntu
 # Автор: Nick # Автор: Nick
 # Версия: 1.0 # Версия: 1.0
- 
 set -e  # Остановка скрипта при любой ошибке set -e  # Остановка скрипта при любой ошибке
- 
 echo "=== Скрипт активации учетной записи root на Ubuntu ===" echo "=== Скрипт активации учетной записи root на Ubuntu ==="
 echo "ВНИМАНИЕ: Данный скрипт внесет изменения в систему безопасности!" echo "ВНИМАНИЕ: Данный скрипт внесет изменения в систему безопасности!"
 echo echo
- 
 # Проверка прав администратора # Проверка прав администратора
 if [ "$EUID" -ne 0 ]; then if [ "$EUID" -ne 0 ]; then
Строка 58: Строка 55:
     exit 1     exit 1
 fi fi
- 
 # Проверка операционной системы # Проверка операционной системы
 if ! grep -q "Ubuntu" /etc/os-release; then if ! grep -q "Ubuntu" /etc/os-release; then
Строка 68: Строка 64:
     fi     fi
 fi fi
- 
 echo "Текущее состояние учетной записи root:" echo "Текущее состояние учетной записи root:"
 root_status=$(passwd -S root) root_status=$(passwd -S root)
 echo "$root_status" echo "$root_status"
- 
 # Проверка статуса root (P = пароль установлен, L = заблокирован, NP = нет пароля) # Проверка статуса root (P = пароль установлен, L = заблокирован, NP = нет пароля)
 root_status_code=$(echo "$root_status" | awk '{print $2}') root_status_code=$(echo "$root_status" | awk '{print $2}')
- 
 echo echo
 if [[ "$root_status_code" == "P" ]]; then if [[ "$root_status_code" == "P" ]]; then
Строка 129: Строка 122:
         fi         fi
     done     done
- 
     echo     echo
     echo "=== Шаг 2: Разблокировка учетной записи root ==="     echo "=== Шаг 2: Разблокировка учетной записи root ==="
Строка 140: Строка 132:
     fi     fi
 fi fi
- 
 echo echo
 echo "=== Шаг 3: Настройка SSH доступа для root (опционально) ===" echo "=== Шаг 3: Настройка SSH доступа для root (опционально) ==="
 read -p "Разрешить SSH доступ для root? (y/N): " -n 1 -r read -p "Разрешить SSH доступ для root? (y/N): " -n 1 -r
 echo echo
- 
 if [[ $REPLY =~ ^[Yy]$ ]]; then if [[ $REPLY =~ ^[Yy]$ ]]; then
     # Создание резервной копии конфигурации SSH     # Создание резервной копии конфигурации SSH
Строка 170: Строка 160:
     echo "ПРЕДУПРЕЖДЕНИЕ: SSH доступ для root включен - убедитесь в безопасности системы!"     echo "ПРЕДУПРЕЖДЕНИЕ: SSH доступ для root включен - убедитесь в безопасности системы!"
 fi fi
- 
 echo echo
 echo "=== Шаг 4: Проверка результатов ===" echo "=== Шаг 4: Проверка результатов ==="
- 
 # Проверка статуса пользователя root # Проверка статуса пользователя root
 echo "Статус учетной записи root:" echo "Статус учетной записи root:"
 passwd -S root passwd -S root
- 
 # Проверка возможности входа # Проверка возможности входа
 echo echo
 echo "Проверка shell для root:" echo "Проверка shell для root:"
 grep "^root:" /etc/passwd grep "^root:" /etc/passwd
- 
 # Проверка групп root # Проверка групп root
 echo echo
 echo "Группы пользователя root:" echo "Группы пользователя root:"
 groups root groups root
- 
 # Проверка SSH конфигурации (если была изменена) # Проверка SSH конфигурации (если была изменена)
 if [[ $REPLY =~ ^[Yy]$ ]]; then if [[ $REPLY =~ ^[Yy]$ ]]; then
Строка 194: Строка 179:
     grep "PermitRootLogin" /etc/ssh/sshd_config     grep "PermitRootLogin" /etc/ssh/sshd_config
 fi fi
- 
 echo echo
 echo "=== Шаг 5: Управление пользователями системы ===" echo "=== Шаг 5: Управление пользователями системы ==="
Строка 208: Строка 192:
 awk -F: '{print "ID: " $3 " | Пользователь: " $1 " | Группа: " $4 " | Shell: " $7}' /etc/passwd | sort -n -k2 awk -F: '{print "ID: " $3 " | Пользователь: " $1 " | Группа: " $4 " | Shell: " $7}' /etc/passwd | sort -n -k2
 echo echo
- 
 read -p "Хотите удалить пользователей? (y/N): " -n 1 -r read -p "Хотите удалить пользователей? (y/N): " -n 1 -r
 echo echo
- 
 if [[ $REPLY =~ ^[Yy]$ ]]; then if [[ $REPLY =~ ^[Yy]$ ]]; then
     echo "=== Удаление пользователей ==="     echo "=== Удаление пользователей ==="
Строка 379: Строка 361:
     done     done
 fi fi
- 
 echo echo
 echo "=== Информация о безопасности ===" echo "=== Информация о безопасности ==="
 cat << 'EOF' cat << 'EOF'
 ВАЖНО! После активации root: ВАЖНО! После активации root:
- 
 1. Используйте сильный пароль для root 1. Используйте сильный пароль для root
 2. Рассмотрите использование SSH ключей вместо паролей 2. Рассмотрите использование SSH ключей вместо паролей
Строка 391: Строка 371:
 5. Мониторьте логи на предмет подозрительной активности 5. Мониторьте логи на предмет подозрительной активности
 6. Рассмотрите отключение root после настройки системы 6. Рассмотрите отключение root после настройки системы
- 
 Логи входа в систему: /var/log/auth.log Логи входа в систему: /var/log/auth.log
 Для отключения root: sudo passwd -l root Для отключения root: sudo passwd -l root
 EOF EOF
- 
 echo echo
 echo "=== Дополнительные команды (опционально) ===" echo "=== Дополнительные команды (опционально) ==="
 read -p "Показать дополнительные команды безопасности? (y/N): " -n 1 -r read -p "Показать дополнительные команды безопасности? (y/N): " -n 1 -r
 echo echo
- 
 if [[ $REPLY =~ ^[Yy]$ ]]; then if [[ $REPLY =~ ^[Yy]$ ]]; then
     cat << 'EOF'     cat << 'EOF'
 Дополнительные команды безопасности: Дополнительные команды безопасности:
- 
 # Настройка SSH ключей для root: # Настройка SSH ключей для root:
 mkdir -p /root/.ssh mkdir -p /root/.ssh
Строка 410: Строка 386:
 # Добавить публичный ключ в /root/.ssh/authorized_keys # Добавить публичный ключ в /root/.ssh/authorized_keys
 chmod 600 /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys
- 
 # Настройка файрвола (не включается автоматически): # Настройка файрвола (не включается автоматически):
 # ufw enable # ufw enable
Строка 416: Строка 391:
 # ufw default allow outgoing # ufw default allow outgoing
 # ufw allow ssh # ufw allow ssh
- 
 # Отключение root после настройки: # Отключение root после настройки:
 passwd -l root passwd -l root
- 
 # Изменение SSH порта: # Изменение SSH порта:
 # Измените Port 22 на другой порт в /etc/ssh/sshd_config # Измените Port 22 на другой порт в /etc/ssh/sshd_config
 # systemctl restart ssh # systemctl restart ssh
- 
 # Мониторинг попыток входа: # Мониторинг попыток входа:
 tail -f /var/log/auth.log | grep "root" tail -f /var/log/auth.log | grep "root"
 EOF EOF
 fi fi
- 
 echo echo
 echo "=== Активация root завершена ===" echo "=== Активация root завершена ==="
 echo "Текущий статус:" echo "Текущий статус:"
 passwd -S root passwd -S root
- 
 exit 0 exit 0
 </code> </code>
- 
-==== Шаг 2: Установка прав выполнения ==== 
- 
-<code bash> 
-chmod +x /tmp/activate_root.sh 
-</code> 
- 
-==== Шаг 3: Запуск скрипта ==== 
- 
-<code bash> 
-sudo /tmp/activate_root.sh 
-</code> 
- 
-**ВАЖНО!** Скрипт должен запускаться с правами sudo 
  
 ===== Пошаговое использование ===== ===== Пошаговое использование =====
Строка 571: Строка 527:
 chmod 600 /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys
  
-# Настройка файрвола +# Настройка файрвола (не включается автоматически) 
-ufw default deny incoming +ufw default deny incoming 
-ufw default allow outgoing   +ufw default allow outgoing   
-ufw allow ssh +ufw allow ssh 
-ufw enable+ufw enable
  
 # Мониторинг попыток входа # Мониторинг попыток входа
Строка 587: Строка 543:
 ^ Проблема ^ Причина ^ Решение ^ ^ Проблема ^ Причина ^ Решение ^
 | `userdel: user is currently used by process` | Активные процессы пользователя | Выберите завершение процессов в скрипте | | `userdel: user is currently used by process` | Активные процессы пользователя | Выберите завершение процессов в скрипте |
-| `Permission denied` при запуске | Отсутствие sudo прав | Запустите: `sudo ./script.sh` |+| `Permission denied` при запуске | Отсутствие sudo прав | Запустите: `sudo ./activate_root.sh` |
 | SSH не перезапускается | Ошибка в конфигурации | Проверьте `/etc/ssh/sshd_config` | | SSH не перезапускается | Ошибка в конфигурации | Проверьте `/etc/ssh/sshd_config` |
 | Root остается заблокированным | Системная политика | Выполните: `passwd -u root` | | Root остается заблокированным | Системная политика | Выполните: `passwd -u root` |
Строка 636: Строка 592:
  
 **ПОМНИТЕ:** Активация root - это мощный инструмент, который требует ответственного использования! **ПОМНИТЕ:** Активация root - это мощный инструмент, который требует ответственного использования!
- 
----- 
- 
-**Дата создания:** {{date:Y-m-d}} \\ 
-**Последнее обновление:** {{date:Y-m-d}} \\ 
-**Тэги:** {{tag>ubuntu root security bash automation}} 
  • vm/ubuntu/script/02-root_user.1758489052.txt.gz
  • Последнее изменение: 2025/09/21 21:10
  • admin