Создание основного рабочего пользователя с правами sudo
Дата публикации: 24.04.2026

Создание основного рабочего пользователя с правами sudo

ccb9a536


Создание основного рабочего пользователя с правами sudo: Защита вашего сервера от взлома

Вы только что арендовали VPS (виртуальный сервер) или выделили dedicated-сервер под свои проекты. Первое, что нужно сделать — избавиться от работы под пользователем root. Почему?

Аналогия: Представьте, что root — это ключ от всех дверей в вашем доме, включая сейф, гараж и подвал. Если злоумышленник его украдёт, он получит полный контроль. А теперь представьте, что у вас есть отдельный ключ для каждой комнаты (пользователь с ограниченными правами) и запасной ключ от всех дверей (sudo), который вы достаёте только когда действительно нужно. Так безопаснее, правда?

В этом уроке вы научитесь: ✅ Создавать основного пользователя для повседневной работы. ✅ Наделять его правами sudo (возможностью временно становиться root). ✅ Защищать сервер от случайных ошибок и атак через уязвимости в ПО. ✅ Отключать вход по паролю для root (чтобы боты не подбирали пароль).


1. Почему работа под root опасна?

Проблема Последствия Решение
Ошибка в команде Удалите не ту папку (rm -rf /) — сервер умрёт. Ограниченные права пользователя.
Уязвимость в софте Если хакер взломает ваш браузер/скрипт, он получит полный доступ к серверу. sudo только по необходимости.
Брутфорс-атаки Боты сканируют IP и подбирают пароль к root. Отключить вход по паролю для root.

Важно! Даже если вы единственный пользователь сервера, работа под root — это как ездить без ремня безопасности: "аварии не будет" — пока не случится.


2. Подготовка: Подключение к серверу

Перед тем как создавать пользователя, убедитесь, что вы: ✔ Подключены к серверу по SSH (например, через Terminal на Mac/Linux или PuTTY на Windows). ✔ Вошли под root (это временно, скоро мы это исправим).

Команда для подключения:

ssh root@ваш_сервер_ip

(Замените ваш_сервер_ip на реальный IP-адрес.)


3. Создание нового пользователя

Мы будем создавать пользователя с именем deploy (вы можете выбрать любое другое, например, admin или ваше имя).

Шаг 1: Создание пользователя

adduser deploy

Система спросит:

  1. Пароль (придумайте сложный, минимум 12 символов, с цифрами и знаками).
  2. Дополнительную информацию (можно пропустить, нажимая Enter).

Почему adduser, а не useradd? adduserинтерактивная и более дружелюбная команда (создаёт домашнюю папку, задаёт пароль). useraddнизкоуровневая, требует ручной настройки.

Шаг 2: Проверка создания пользователя

Убедитесь, что пользователь появился в системе:

id deploy

Ожидаемый вывод:

uid=1001(deploy) gid=1001(deploy) groups=1001(deploy)

(Цифры могут отличаться.)


4. Наделение пользователя правами sudo

Теперь нужно дать пользователю возможность выполнять команды от имени root, но только когда это действительно необходимо.

Шаг 1: Добавление в группу sudo

usermod -aG sudo deploy
  • -aG — добавляет пользователя в дополнительную группу (sudo).
  • Если группы sudo нет (редко, но бывает на некоторых дистрибутивах), используйте wheel:
    usermod -aG wheel deploy

Шаг 2: Проверка прав sudo

Переключитесь на нового пользователя:

su - deploy

И попробуйте выполнить команду с sudo (например, обновить пакеты):

sudo apt update

(Для CentOS/RHEL используйте sudo yum update.)

Если всё работает, система спросит пароль пользователя deploy и выполнит команду.

Важно!

  • Пароль спрашивается один раз за сессию (по умолчанию 15 минут).
  • Если вы видите ошибку deploy is not in the sudoers file, значит пользователь не в группе sudo. Повторите шаг 1.

5. Настройка SSH для безопасного входа

Теперь нужно отключить вход по паролю для root и разрешить вход только по SSH-ключу (это защитит от брутфорс-атак).

Шаг 1: Генерация SSH-ключей (на вашем локальном компьютере)

Если у вас ещё нет SSH-ключа, сгенерируйте его:

ssh-keygen -t ed25519 -C "ваш_email@example.com"

(Или ssh-keygen -t rsa -b 4096 для старой системы.)

Почему ed25519? Это самый современный и безопасный алгоритм (быстрее и надёжнее RSA).

Следуйте инструкциям (можно оставить пустым пароль для ключа, но это менее безопасно).

Шаг 2: Копирование ключа на сервер

Скопируйте публичный ключ (~/.ssh/id_ed25519.pub) на сервер:

ssh-copy-id deploy@ваш_сервер_ip

(Если ssh-copy-id нет, используйте cat ~/.ssh/id_ed25519.pub | ssh deploy@ваш_сервер_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys".)

Шаг 3: Отключение входа по паролю для root

Откройте файл конфигурации SSH:

sudo nano /etc/ssh/sshd_config

Найдите и измените следующие строки:

PermitRootLogin no          # Запрещаем вход под root
PasswordAuthentication no    # Запрещаем вход по паролю (только по ключу)

Сохраните (Ctrl+O, затем Enter) и закройте (Ctrl+X).

Шаг 4: Перезапуск SSH-сервиса

sudo systemctl restart sshd

ВАЖНО! Перед выходом из root проверьте, что можете войти под новым пользователем:

ssh deploy@ваш_сервер_ip

Если вход прошёл — можно закрыть сессию root и больше не использовать её.


6. Дополнительные меры безопасности (по желанию)

Действие Команда/настройка Зачем нужно?
Смена порта SSH В /etc/ssh/sshd_config измените Port 22 на другой (например, 2222). Уменьшает количество автоматических атак.
Ограничение доступа по IP AllowUsers deploy@ваш_ip в sshd_config. Разрешает вход только с вашего IP.
Установка fail2ban sudo apt install fail2ban Блокирует IP после нескольких неудачных попыток входа.

7. Типичные ошибки и их решение

Проблема Причина Решение
sudo: no tty present Скрипт пытается использовать sudo без терминала. Добавьте Defaults:deploy !requiretty в /etc/sudoers.
Permission denied (publickey) SSH-ключ не скопировался или права неверные. Проверьте ~/.ssh/authorized_keys и права (chmod 600 ~/.ssh/authorized_keys).
adduser: command not found На минимальных образах может не быть adduser. Используйте useradd -m deploy + passwd deploy.

Практика для закрепления

Упражнение 1: Создание пользователя

  1. Создайте пользователя testuser с паролем SecurePass123!.
  2. Добавьте его в группу sudo.
  3. Проверьте, может ли он выполнить sudo apt update.

Упражнение 2: Настройка SSH

  1. Сгенерируйте новый SSH-ключ ed25519 на локальном компьютере.
  2. Скопируйте его на сервер для пользователя testuser.
  3. Отключите вход по паролю в /etc/ssh/sshd_config и перезапустите SSH.

Упражнение 3: Диагностика проблем

Представьте, что после настройки sudo пользователь testuser видит ошибку:

testuser is not in the sudoers file. This incident will be reported.

Вопрос: Какие 3 возможные причины этой ошибки и как их исправить?

Упражнение 4: Безопасность

  1. Поменяйте порт SSH с 22 на 2222.
  2. Настройте fail2ban для защиты от брутфорса.
  3. Проверьте логи аутентификации (/var/log/auth.log), чтобы увидеть попытки входа.

Упражнение 5: Автоматизация (для продвинутых)

Напишите bash-скрипт, который:

  1. Создаёт пользователя с именем из переменной (USERNAME).
  2. Добавляет его в sudo.
  3. Копирует ваш локальный SSH-ключ в authorized_keys.
  4. Отключает вход по паролю для root.

Подсказка: Используйте expect или sshpass для автоматизации ввода пароля (но в продакшене лучше избегать этого).


Заключение: Что дальше?

Теперь ваш сервер защищён от основных угроз, связанных с работой под root. Следующие шаги: 🔹 Настройка фаервола (ufw или iptables). 🔹 Установка необходимого ПО (Nginx, Docker, Node.js и т.д.) под обычным пользователем. 🔹 Резервное копирование (настройка rsync или borgbackup).

Помните: Безопасность — это процесс, а не одноразовая настройка. Регулярно обновляйте систему (sudo apt update && sudo apt upgrade) и следите за логами (journalctl -xe).

Если остались вопросы — задавайте их в комментариях! 🚀


Генератор паролей с длинной 64 символа
Женская одежда с бахромой
Кадастровые работы в Бийске
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать планировку сайта для блогов на DreamHost
Как выбрать Vdsina вечный хостинг для своего проекта
Казань окна VEKA - профессионализм и опыт
Курьерская вода
Новостройки Оренбурга: недвижимость с отличной ценой
Онлайн чат-партнерство
Пиломатериалы для возведения бани
Почему VDSina — лучший выбор хостинга
Секреты Вконтакте: тонкости и хитрости
Скидки до 50% на тур в Коста-Рике
Видеочат рулетка бесплатно
рейтинг хостингов 2026 Быстрые VDS серверы