Управление пользователями на сервере Linux
Уровень: Начинающий
Расчетное время: ~30 минут
Цель: Изучить инструменты CLI для создания и поддержки учетных записей, настройки стандартного доступа к службам и безопасного поддержания работоспособности.
Введение
Управление пользователями Linux – это базовый навык для любого системного администратора. Правильный контроль доступа обеспечивает стабильность, безопасность и подотчетность сервера. В этом руководстве мы рассмотрим основы добавления учетных записей, предоставления привилегий (включая повышение привилегий в Linux) и безопасного поддержания стандартной конфигурации служб.
Предварительные требования
Перед началом убедитесь, что выполнены следующие условия:
- Операционная система: Ubuntu 22.04/24.04 LTS, Debian 12/13, AlmaLinux/Rocky Linux 8/9/10, RHEL 8/9/10
- Доступ: доступ sudo или root к серверу по SSH
- Система: Работающий менеджер пакетов
- Необходимые знания: уверенное использование командной строки Linux
Понимание ключевых концепций
Перед внесением изменений следует понять, как работают учетные записи:
- UID (ID пользователя): Уникальный числовой идентификатор, назначаемый каждому пользователю для отслеживания владения и прав доступа.
- GID (ID группы): Основной числовой идентификатор, назначающий пользователя в определенную группу. Группы Linux объединяют нескольких пользователей для совместных прав доступа.
- Домашний каталог: Каталог по умолчанию (
/home/username), в котором хранятся личные файлы и конфигурации пользователя. - Оболочка входа: Интерпретатор команд (например,
/bin/bash), который запускается при входе авторизованного пользователя. Авторизованный пользователь – это учетная запись, которой разрешен доступ к системе. - Пароль: Секретная строка символов, используемая для аутентификации пользователя Linux. Аутентификация – это процесс проверки личности пользователя.
- Adduser: Интерактивный интерфейсный скрипт, используемый для создания учетных записей, в основном в системах Debian/Ubuntu.
- Useradd: Нативная, низкоуровневая бинарная утилита, используемая для создания учетных записей во всех дистрибутивах Linux.
- Блокировка учетной записи: Действие по отключению входа по паролю для защиты сервера.
- Срок действия учетной записи: Действие по автоматическому отключению учетной записи в определенную дату.
Шаг 1: Создание нового пользователя
Для создания нового пользователя используйте команду adduser (в Debian/Ubuntu) или команду useradd (в RHEL/AlmaLinux).
Замените johndoe на желаемое имя пользователя в примерах ниже. Выполните следующую команду для создания пользователя с именем johndoe:
sudo adduser johndoe
Вам будет предложено ввести пароль и необязательные данные пользователя.
Ожидаемый вывод:
Вывод будет содержать строки о создании группы, пользователя, домашнего каталога и копировании файлов из /etc/skel. Точный UID/GID зависит от вашей системы.
В RHEL/AlmaLinux используйте sudo useradd -m johndoe (флаг -m гарантирует создание /home/johndoe) и задайте пароль вручную с помощью команды passwd: sudo passwd johndoe.
Шаг 2: Понимание sudo на сервере Linux
Обычные пользователи не могут изменять конфигурации системы или устанавливать программное обеспечение. Команда Linux sudo позволяет авторизованным пользователям выполнять команды с привилегиями root.
2.1 Добавление пользователя в группу sudo
Самый простой способ предоставить привилегии – добавить пользователя в предопределенную административную группу с помощью команды usermod.
Ubuntu/Debian:
sudo usermod -aG sudo johndoe
RHEL/AlmaLinux:
sudo usermod -aG wheel johndoe
Команда usermod добавляет (-a) пользователя в дополнительную группу (-G). Теперь пользователь johndoe может выполнять административные задачи, добавляя sudo перед командами. При успешном выполнении команда не выводит никаких сообщений. Вы можете проверить это с помощью groups johndoe - группа sudo (или wheel) должна появиться в списке.
Шаг 3: Изменение свойств пользователя
Вам может потребоваться заблокировать учетную запись или изменить ее пароль.
3.1 Изменение пароля
Чтобы принудительно изменить пароль или обновить забытый пароль, выполните следующее, используя команду passwd:
sudo passwd johndoe
Вам будет предложено ввести и подтвердить новый пароль. После завершения пользователь сможет войти в систему с новыми учетными данными.
3.2 Блокировка учетной записи
Если пользователь покидает компанию, вы должны выполнить блокировку учетной записи для обеспечения безопасности сервера:
sudo usermod -L johndoe
Учетная запись немедленно блокируется, предотвращая любой новый вход по паролю. Чтобы разблокировать учетную запись позже, используйте sudo usermod -U johndoe.
Обе команды не выводят никаких сообщений. Вы можете проверить статус с помощью passwd -S johndoe (статус L = заблокирован, P = активен).
3.3 Настройка срока действия учетной записи
Чтобы автоматически отключить учетную запись в определенную дату, вы настраиваете срок действия учетной записи:
sudo usermod -e 2026-12-31 johndoe
Это гарантирует, что временные подрядчики автоматически потеряют доступ.
Вы можете проверить дату окончания срока действия с помощью sudo chage -l johndoe. Из-за обработки границы UTC она может отображаться на один день раньше - это нормально, и учетная запись все равно истечет корректно.
Шаг 4: Безопасное использование команды Linux sudo для безопасности сервера
Файл sudoers (/etc/sudoers) контролирует, кто именно может использовать sudo и что они могут выполнять.
Для редактирования файла sudoers всегда используйте visudo. Он проверяет синтаксические ошибки перед сохранением, предотвращая блокировку.
Рекомендуемая передовая практика – создавать отдельный файл для каждого правила, а не редактировать основной файл:
sudo visudo -f /etc/sudoers.d/johndoe
Это упрощает откат правил и снижает риск повреждения основной конфигурации sudoers.
Чтобы разрешить johndoe перезапускать службу синхронизации времени без пароля, добавьте соответствующую строку для вашей ОС:
Ubuntu/Debian:
johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart systemd-timesyncd
RHEL/AlmaLinux:
johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart chronyd
Сохраните и выйдите. Теперь johndoe может перезапустить службу без запроса пароля.
Пользователь johndoe должен выполнить команду как sudo systemctl restart systemd-timesyncd (или chronyd) - именно через sudo. Прямой вызов перезапуска службы без sudo вернет ошибку polkit, требующую интерактивной аутентификации.
Никогда не редактируйте файлы sudoers напрямую с помощью nano или vim. Синтаксическая ошибка сломает доступ sudo для всей системы, и для исправления потребуется загрузка в режиме восстановления.
Шаг 5: Удаление пользователя
Когда учетная запись больше не нужна, удалите ее для поддержания порядка на сервере.
Чтобы удалить пользователя, но сохранить его файлы:
sudo deluser johndoe
В RHEL/AlmaLinux: sudo userdel johndoe
Выполнение команды без --remove-home (или -r) оставляет /home/johndoe и файлы пользователя на диске. Это полезно для архивирования данных, но вы должны учитывать наличие оставшихся файлов.
Чтобы удалить пользователя и его домашний каталог:
sudo deluser --remove-home johndoe
В RHEL/AlmaLinux: sudo userdel -r johndoe
Чтобы удалить файл sudoers пользователя, если он был создан, выполните:
sudo rm -f /etc/sudoers.d/johndoe
Теперь учетная запись пользователя полностью удалена из системы.
Перед удалением пользователя убедитесь, что никакие фоновые службы не зависят от его UID или групп Linux.
Проверка
Для проверки нового пользователя и его членства в группах используйте команду id:
id johndoe
Ожидаемый вывод:
В выводе будут показаны UID, GID (который может отличаться от 1001) и список групп. Убедитесь, что присутствует группа sudo (Debian/Ubuntu) или wheel (RHEL/AlmaLinux). В Debian/Ubuntu в списке также может появиться группа users - это нормально.
Чтобы проверить доступ sudo, переключитесь на нового пользователя:
su - johndoe
Затем выполните команду, требующую привилегий:
sudo ls /root
При появлении запроса введите пароль johndoe (пароль, заданный на Шаге 1), а не пароль root. Вы должны увидеть содержимое каталога /root.
Устранение неполадок
- Синтаксические ошибки в sudoers: Если вы случайно сломаете файл sudoers, часто это можно исправить, выполнив
pkexec visudoиз другого сеанса. Еслиpkexecнедоступен, вам потребуется загрузить сервер в режиме восстановления/однопользовательском режиме (recovery/single-user mode) для редактирования файла. - Потеря доступа sudo: Если вы потеряли доступ sudo, но у вас все еще есть пароль root, войдите напрямую как root (например, через
su -), чтобы исправить членство в группах. - Проверка привилегий пользователя: Чтобы точно узнать, какие команды разрешено выполнять пользователю, используйте
sudo -l -U johndoe.
Откат
Если вам нужно отменить изменения, внесенные в этом руководстве:
- Удалите пользователя из группы sudo:
sudo gpasswd -d johndoe sudo(илиwheel). - Отмените любые добавления, сделанные с помощью
visudo. - Удалите пользователя и его домашний каталог:
sudo deluser --remove-home johndoe(илиsudo userdel -r johndoe). - Удалите его выделенный файл sudoers:
sudo rm -f /etc/sudoers.d/johndoe.
Заключение
Правильная настройка учетных записей гарантирует, что вы сможете безопасно управлять пользователями в Linux без ущерба для безопасности системы. Понимая команду adduser, команду usermod и команду passwd, наряду с безопасной настройкой sudo, вы поддерживаете стабильную и подотчетную среду.
Версия документа: 1.0
Последнее обновление: Май 2026
Владелец: Команда технической документации