Эта статья — часть серии Linux administration, посвящённой самостоятельному администрированию Linux, Self-Hosting и DevOps. Понимание управления пользователями — ключ к безопасности и эффективности вашей системы.
📌 О чём эта статья?
В Linux каждая операция выполняется от имени пользователя. Правильное управление пользователями и группами — основа безопасности, изоляции и удобства администрирования.
В этой статье вы узнаете:
Как устроены пользователи и группы в Linux
Как создавать, изменять и удалять учётные записи
Как управлять правами через группы и sudo
Где хранятся данные о пользователях
Практические примеры и лучшие практики
🧩 Как устроены пользователи в Linux?
В Linux существуют два основных типа пользователей: пользователи-люди (human users) и системные пользователи (system users). Системные пользователи создаются для работы различных служб и приложений, таких как базы данных или веб-серверы (например, www-data, mysql).
Файл /etc/shadow доступен только для root. Его утечка — критическая уязвимость.
🧩 /etc/group — группы пользователей
Как и пользователи, группы являются ключевым элементом многопользовательской среды Linux. Каждая группа имеет уникальный идентификатор группы (Group ID, GID). Пользователь может быть членом одной основной группы и нескольких дополнительных групп.
Группы позволяют нескольким пользователям совместно получать доступ к одним и тем же файлам и ресурсам. Это упрощает распределение привилегий и обеспечивает более гибкое управление доступом.
Для создания новых учетных записей пользователей в большинстве дистрибутивов Linux используются команды useradd или adduser. Команда useradd является низкоуровневой командой для создания пользователей, в то время как adduser может быть более удобной.
При создании новой учетной записи пользователя, как правило, создается его домашний каталог. В этот домашний каталог копируется набор файлов по умолчанию, таких как .bashrc, .profile и .bash_history. Эти файлы могут содержать сценарии входа в систему и файлы конфигурации оболочки, и их шаблоны по умолчанию хранятся в каталоге /etc/skel.
Для изменения настроек существующей учетной записи используется команда usermod, а для удаления — userdel или deluser. Пароли пользователей устанавливаются или изменяются с помощью команды passwd. Также важно знать о сроках действия паролей и работе команды chage для повышения безопасности.
sudo useradd -m -s /bin/bash alice
Флаги:
-m — создать домашнюю директорию
-s — указать оболочку
-c — добавить описание: -c "Alice Smith"
TIP
Используйте adduser в Debian/Ubuntu — это дружелюбная обёртка:
sudo adduser alice
🔐 Установка пароля
sudo passwd alice
WARNING
Пароль должен быть надёжным. Используйте менеджер паролей (например, Bitwarden).
📝 Изменение пользователя
sudo usermod -s /bin/zsh alice # Сменить оболочкуsudo usermod -d /new/home alice # Сменить домашнюю директориюsudo usermod -aG docker alice # Добавить в группу (важно: -aG, не -G!)
NOTE
-aG — добавить к существующим группам. -G — перезаписать список групп!
❌ Удаление пользователя
sudo userdel alice # Удалить пользователяsudo userdel -r alice # Удалить пользователя и домашнюю директорию
🧑🤝🧑 Работа с группами
Создание группы
sudo groupadd developers
Добавление пользователя в группу
sudo usermod -aG developers alice
Просмотр групп пользователя
groups aliceid alice
Удаление пользователя из группы
# Нет прямой команды, но можно переназначить:sudo gpasswd -d alice developers
🔐 Управление правами: sudo и wheel
Суперпользователь root
В любой системе Linux всегда присутствует привилегированная учетная запись root, также называемая суперпользователем. Эта учетная запись имеет идентификатор UID, равный 0, и обладает практически неограниченными административными полномочиями в системе. Пользователь root может открывать любые файлы, запускать любые программы, устанавливать программное обеспечение и управлять другими учетными записями. Ограничить права пользователя root практически невозможно.
В ранних дистрибутивах Linux существовала возможность авторизоваться непосредственно под учетной записью root, что давало полные административные права. Однако из-за возможных злоупотреблений и рисков безопасности разработчики дистрибутивов часто отключают учетную запись root по умолчанию. Вместо этого для выполнения операций, требующих административных полномочий, используется команда sudo. Пользователю, выполнившему команду sudo, становятся доступны те же полномочия, что и пользователю root. Первый пользователь, созданный при установке системы, обычно также обладает полномочиями root через sudo.
Приглашение командной строки для обычного пользователя обычно выглядит как $ (знак доллара), а для суперпользователя — как # (знак фунта, решетки).
Добавление пользователя в группу sudo:
sudo usermod -aG sudo alice # Debian/Ubuntusudo usermod -aG wheel alice # CentOS/RHEL, Fedora, Arch
INFO
Группа sudo (Debian) и wheel (Red Hat) дают права на использование sudo.
Конфигурация: /etc/sudoers
🔧 Настройка /etc/sudoers
Никогда не редактируйте напрямую! Используйте:
sudo visudo
Пример добавления:
alice ALL=(ALL:ALL) ALL
Формат:
Пользователь Машина=(Кто) Права
WARNING
Ошибка в /etc/sudoers может заблокировать доступ к sudo.
Всегда используйте visudo — он проверяет синтаксис.
Visudo — утилита в операционной системе Linux, которая безопасно редактирует файл /etc/sudoers.
🧪 Практические примеры
Пример 1: Создание пользователя
# Создаём пользователяsudo useradd -m -s /bin/bash media# Устанавливаем парольsudo passwd media# Добавляем в группу docker (если используем Docker)sudo usermod -aG docker media# Проверяемid media
Следуйте этим правилам, особенно на публичных серверах.
Не используйте root для повседневной работы
Отключите вход root по SSH:
# /etc/ssh/sshd_configPermitRootLogin no
Используйте sudo вместо su
Регулярно удаляйте неиспользуемые учётные записи
Настройте истечение паролей:
sudo chage -M 90 alice # Пароль истекает через 90 дней
Используйте SSH-ключи вместо паролей
📊 Диагностика и проверка
whoami # Кто я?id # UID, GID, группыusers # Кто вошёл в системуlast # История входовw # Кто онлайн и что делаетsudo -l -U alice # Какие права у пользователя alice
🔄 Современные альтернативы: LDAP, SSSD, NIS
Для управления пользователями в сетях используются централизованные решения:
LDAP — для аутентификации в корпоративных средах
SSSD — System Security Services Daemon (интеграция с LDAP, Active Directory)
NIS — устаревший, но ещё используется
INFO
Для домашних серверов достаточно локальных учётных записей.