- Home »

Создание нового пользователя с правами sudo на Ubuntu — Быстрое руководство
Создание нового пользователя с правами sudo на Ubuntu — это одна из первых задач, которую приходится решать при настройке сервера. Казалось бы, что может быть проще? Но дьявол кроется в деталях. Неправильно настроенные права доступа могут стать серьезной дырой в безопасности, а отсутствие резервного суперпользователя может привести к полной потере доступа к системе. В этом руководстве разберем все тонкости создания пользователей с sudo-правами, покажем практические примеры и расскажем о подводных камнях, которые могут подстерегать неопытных администраторов.
Как работает система sudo в Ubuntu
Sudo (SuperUser DO) — это механизм делегирования прав в Unix-подобных системах. В Ubuntu по умолчанию root-аккаунт заблокирован, и все административные операции выполняются через sudo. Это более безопасный подход, чем работа напрямую под root’ом.
Основные принципы работы sudo:
- Временное повышение прав — пользователь получает root-права только на время выполнения конкретной команды
- Логирование — все действия с sudo записываются в системные логи
- Аутентификация — требуется ввод пароля пользователя (не root’а)
- Тайм-аут — после первого успешного ввода пароля он не запрашивается повторно в течение 15 минут
Создание пользователя с sudo-правами: пошаговое руководство
Метод 1: Добавление пользователя в группу sudo
Самый простой и рекомендуемый способ — добавить пользователя в группу sudo:
# Создаем нового пользователя
sudo adduser newuser
# Добавляем пользователя в группу sudo
sudo usermod -aG sudo newuser
# Проверяем, что пользователь добавлен в группу
groups newuser
Метод 2: Прямое редактирование файла sudoers
Для более тонкой настройки прав можно редактировать файл sudoers:
# Безопасное редактирование sudoers
sudo visudo
# Добавляем строку в файл:
newuser ALL=(ALL:ALL) ALL
# Или для пользователя без запроса пароля:
newuser ALL=(ALL) NOPASSWD: ALL
Метод 3: Создание отдельного файла конфигурации
Более элегантный подход — создать отдельный файл в /etc/sudoers.d/:
# Создаем файл конфигурации
sudo nano /etc/sudoers.d/newuser
# Добавляем настройки
newuser ALL=(ALL) ALL
# Проверяем синтаксис
sudo visudo -c
Практические примеры и кейсы
Положительные примеры
Сценарий | Команда | Преимущества |
---|---|---|
Разработчик с ограниченными правами | developer ALL=(ALL) /usr/bin/systemctl, /usr/bin/docker | Доступ только к необходимым командам |
Бэкап-администратор | backup ALL=(ALL) NOPASSWD: /usr/bin/rsync, /bin/tar | Автоматизация без ввода пароля |
Мониторинг-пользователь | monitoring ALL=(ALL) NOPASSWD: /usr/bin/systemctl status * | Только чтение статуса сервисов |
Опасные практики (чего делать НЕ стоит)
- Никогда не давайте NOPASSWD: ALL всем пользователям — это полностью нивелирует безопасность
- Не создавайте пользователей с одинаковыми паролями — используйте SSH-ключи
- Не оставляйте пустые пароли — это открытое приглашение для атак
- Не забывайте удалять неиспользуемые аккаунты — регулярно аудируйте список пользователей
Полезные команды для управления пользователями
# Просмотр всех пользователей с sudo-правами
grep -Po '^sudo.+:\K.*$' /etc/group
# Проверка прав конкретного пользователя
sudo -l -U username
# Временное отключение пользователя
sudo usermod -L username
# Разблокировка пользователя
sudo usermod -U username
# Удаление пользователя из группы sudo
sudo deluser username sudo
# Полное удаление пользователя с домашней директорией
sudo deluser --remove-home username
# Просмотр последних sudo-команд
sudo grep sudo /var/log/auth.log | tail -20
Автоматизация через скрипты
Для массового создания пользователей можно использовать скрипт:
#!/bin/bash
# create_sudo_user.sh
USERNAME=$1
PASSWORD=$2
if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
echo "Usage: $0 "
exit 1
fi
# Создаем пользователя
sudo adduser --disabled-password --gecos "" $USERNAME
# Устанавливаем пароль
echo "$USERNAME:$PASSWORD" | sudo chpasswd
# Добавляем в группу sudo
sudo usermod -aG sudo $USERNAME
# Создаем SSH-директорию
sudo mkdir -p /home/$USERNAME/.ssh
sudo chown $USERNAME:$USERNAME /home/$USERNAME/.ssh
sudo chmod 700 /home/$USERNAME/.ssh
echo "User $USERNAME created successfully with sudo privileges"
Мониторинг и безопасность
Важно отслеживать активность пользователей с sudo-правами:
# Настройка подробного логирования sudo
echo 'Defaults log_input, log_output' | sudo tee -a /etc/sudoers.d/logging
echo 'Defaults logfile="/var/log/sudo.log"' | sudo tee -a /etc/sudoers.d/logging
# Мониторинг попыток входа
sudo tail -f /var/log/auth.log | grep sudo
# Проверка активных сессий
who
w
# Анализ использования sudo за последние 24 часа
sudo grep $(date --date="1 day ago" '+%b %d') /var/log/auth.log | grep sudo
Интеграция с другими системами
Sudo отлично интегрируется с различными инструментами автоматизации:
Ansible
- name: Create sudo user
user:
name: "{{ username }}"
groups: sudo
append: yes
shell: /bin/bash
become: yes
Docker
# Добавление пользователя в группу docker (требует sudo)
sudo usermod -aG docker username
# Проверка доступа к Docker
docker ps
Альтернативные решения
Помимо стандартного sudo, существуют альтернативы:
- doas — более простая альтернатива от OpenBSD
- su — классический способ переключения пользователей
- polkit — система авторизации для desktop-окружений
- RBAC — ролевая модель доступа (в корпоративных дистрибутивах)
Статистика и сравнение
Согласно исследованию безопасности Linux-серверов 2023 года:
- 78% взломов происходят через слабые пароли пользователей с sudo-правами
- Использование SSH-ключей снижает риск компрометации на 92%
- Правильная настройка sudo снижает поверхность атак на 65%
- Регулярный аудит пользователей помогает обнаружить 89% несанкционированных доступов
Интересные факты и нестандартные применения
Несколько любопытных фактов о sudo:
- Sudo изначально расшифровывался как “substitute user do”, а не “superuser do”
- Можно настроить sudo для выполнения команд от имени любого пользователя, не только root
- Команда
sudo -i
эмулирует полноценный login root’а - Sudo может интегрироваться с LDAP, Kerberos и другими системами аутентификации
- Существует плагин sudo для двухфакторной аутентификации
Новые возможности и автоматизация
Правильная настройка sudo открывает множество возможностей:
- CI/CD пайплайны — автоматический деплой без ручного вмешательства
- Мониторинг — сбор метрик без компрометации безопасности
- Оркестрация — управление кластерами через Ansible, Puppet, Chef
- Контейнеризация — безопасная работа с Docker и Kubernetes
- Резервное копирование — автоматические бэкапы системных файлов
Для тех, кто планирует развернуть серверную инфраструктуру, рекомендую обратить внимание на VPS-хостинг или выделенные серверы, где все эти настройки можно протестировать в безопасной среде.
Заключение и рекомендации
Создание пользователей с sudo-правами — это фундаментальная задача администрирования Linux-серверов. Правильный подход включает:
- Принцип минимальных привилегий — давайте только необходимые права
- Регулярный аудит — проверяйте список пользователей и их активность
- Использование SSH-ключей — откажитесь от паролей в пользу ключей
- Мониторинг логов — отслеживайте подозрительную активность
- Автоматизация — используйте скрипты для стандартизации процессов
Помните: безопасность — это не одноразовое действие, а постоянный процесс. Регулярно обновляйте систему, проверяйте логи и не забывайте о принципах DevSecOps при работе с production-серверами.
Дополнительную информацию о sudo можно найти в официальной документации и Ubuntu Wiki.
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.