EUR
european

EUR

usa

USD

Russian Ru
Ex. VAT Ex. VAT 0%

Управление пользователями на сервере 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 зависит от вашей системы.

Info

В 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

Это гарантирует, что временные подрядчики автоматически потеряют доступ.

Info

Вы можете проверить дату окончания срока действия с помощью 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, требующую интерактивной аутентификации.

Warning

Никогда не редактируйте файлы sudoers напрямую с помощью nano или vim. Синтаксическая ошибка сломает доступ sudo для всей системы, и для исправления потребуется загрузка в режиме восстановления.

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

Когда учетная запись больше не нужна, удалите ее для поддержания порядка на сервере.

Чтобы удалить пользователя, но сохранить его файлы:

sudo deluser johndoe

В RHEL/AlmaLinux: sudo userdel johndoe

Warning

Выполнение команды без --remove-home (или -r) оставляет /home/johndoe и файлы пользователя на диске. Это полезно для архивирования данных, но вы должны учитывать наличие оставшихся файлов.

Чтобы удалить пользователя и его домашний каталог:

sudo deluser --remove-home johndoe

В RHEL/AlmaLinux: sudo userdel -r johndoe

Чтобы удалить файл sudoers пользователя, если он был создан, выполните:

sudo rm -f /etc/sudoers.d/johndoe

Теперь учетная запись пользователя полностью удалена из системы.

Info

Перед удалением пользователя убедитесь, что никакие фоновые службы не зависят от его 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.

Откат

Если вам нужно отменить изменения, внесенные в этом руководстве:

  1. Удалите пользователя из группы sudo: sudo gpasswd -d johndoe sudo (или wheel).
  2. Отмените любые добавления, сделанные с помощью visudo.
  3. Удалите пользователя и его домашний каталог: sudo deluser --remove-home johndoe (или sudo userdel -r johndoe).
  4. Удалите его выделенный файл sudoers: sudo rm -f /etc/sudoers.d/johndoe.

Заключение

Правильная настройка учетных записей гарантирует, что вы сможете безопасно управлять пользователями в Linux без ущерба для безопасности системы. Понимая команду adduser, команду usermod и команду passwd, наряду с безопасной настройкой sudo, вы поддерживаете стабильную и подотчетную среду.

Версия документа: 1.0
Последнее обновление: Май 2026
Владелец: Команда технической документации

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA