Работа с пользователями в Linux
Версия: для дистрибутивов на базе Linux (Debian/Ubuntu, CentOS/RHEL, Fedora, openSUSE)
Целевая аудитория: администраторы хостинга, веб-разработчики, пользователи VPS
Linux - многопользовательская система.
Управление пользователями и группами - базовая задача при настройке сервера, выдаче доступа или обеспечении безопасности.
В этой статье разберём все аспекты работы с учётными записями.
Типы пользователей в Linux
Все пользователи делятся на три категории:
| Тип | UID | Описание |
|
Системные (служебные) |
обычно 1–999 (в старых системах 1–499) |
Создаются при установке ПО. Используются демонами и службами (www-data, mysql, systemd-network). Не предназначены для входа в систему. |
| Обычные (непривилегированные) |
1000–65533 (на многих системах начиная с 1000) |
Создаются администратором для реальных пользователей. Имеют домашнюю директорию и ограниченные права. |
| Суперпользователь (root) | 0 | Абсолютные права на всю систему. Используется только для администрирования. |
Проверить тип пользователя можно по его UID (см. следующий раздел).
Что такое UID?
UID (User IDentifier) — уникальный числовой идентификатор пользователя. Система оперирует именно UID, а не именем. Основные значения:
- 0 — root
- 1–999 — системные пользователи (зарезервированы)
- 1000+ — обычные пользователи (верхняя граница зависит от настроек, обычно 65533)
При создании нового обычного пользователя система автоматически назначает следующий доступный UID, начиная с 1000 (или с UID_MIN, заданного в /etc/login.defs).
Правила именования пользователей
Имя пользователя должно соответствовать следующим правилам (обычно):
- Длина от 1 до 32 символов.
- Допустимые символы: буквы латиницы (a–z, A–Z), цифры (0–9), точка (.), дефис (-), подчёркивание (_), знак доллара ($ — не рекомендуется).
- Имя должно начинаться с буквы или подчёркивания (не может начинаться с цифры или дефиса).
- Не должно совпадать с зарезервированными именами (root, daemon, bin и т.д.).
- Регистр символов учитывается: User и user — разные пользователи.
Проверить допустимость имени можно с помощью утилиты useradd -N или просто создав тестового пользователя.
Просмотр информации о пользователе
Файлы с информацией
- /etc/passwd — список всех пользователей (доступен для чтения всем). Формат строки:
имя:x:UID:GID:описание:домашняя_директория:shell - /etc/shadow — хеши паролей и данные об их истечении (доступен только root).
Пример просмотра:
cat /etc/passwd | grep username
Команды для получения информации о текущем пользователе
| Команда | Что показывает |
| whoami | имя текущего пользователя |
| id | UID, GID, группы текущего пользователя |
| id -u | только UID |
| groups | список групп текущего пользователя |
| logname | исходное имя пользователя, под которым выполнен вход |
Команды для информации о любом пользователе
| Команда | Что показывает |
| id username | UID, GID и группы username |
| finger username | расширенная информация (если установлено) |
| getent passwd usernam | получить запись из passwd (учитывает LDAP/NIS) |
Пользователи, вошедшие в систему
| Команда | Что показывает |
| who | список активных сессий |
| w | более под |
