Как посмотреть пользователей в системе Linux?

«Как посмотреть пользователей в системе Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Управление пользователями и аудит активных сессий — часть задач безопасности и администрирования инфраструктуры.

1. Все учетные записи в системе: Информация хранится в /etc/passwd. Для получения только списка логинов:

cut -d: -f1 /etc/passwd

2. Пользователи с доступной оболочкой (чаще всего — реальные пользователи): Многие системные учетки имеют оболочку /usr/sbin/nologin или /bin/false.

grep -v "/nologin|/false" /etc/passwd | cut -d: -f1

3. Активные сессии в реальном времени (кто сейчас работает на сервере):

who
# Или более подробно (показывает также uptime и нагрузку)
w

4. История входов в систему (аудит):

last
# Показать неудачные попытки входа (требует прав суперпользователя)
sudo lastb

Контекст DevOps:

  • Безопасность: Регулярный просмотр last и who помогает выявить несанкционированные доступы. В идеале доступ по SSH для людей должен вестись через единые SSH-ключи, а не пароли.
  • Автоматизация: Сервисные пользователи (например, nginx, postgres) создаются пакетами при установке. При написании скриптов развертывания (Ansible, shell) важно проверять существование пользователя перед созданием:
    id -u <username> 2>/dev/null || useradd ...
  • Контейнеризация: Внутри контейнеров, как правило, только root и, возможно, один непривилегированный пользователь приложения, что минимизирует поверхность атаки.