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

Использование команды whoami(рекомендуемая и самая простая)

Команда whoami – это самый простой способ отображения текущего эффективного имени пользователя.

Команда:

whoami

Как работает:

  • Считывает эффективный идентификатор пользователя (EUID) текущего процесса.
  • Ищет связанное с ним имя пользователя в файле /etc/passwd.
  • Всегда показывает , кем вы являетесь в данный момент.

🔹 Лучший пример использования:

  • При использовании sudo или переключении пользователей “whoami” показывает активного пользователя.

Использование команды id 🧩 (более подробная информация)

Команда id предоставляет не только имя пользователя – она показывает идентификатор пользователя (UID), идентификатор группы (GID) и принадлежность к группе.

Команда:

id -un

Альтернативный вариант – без флагов:

id

Как это работает:

  • Использует базу данных пользователей системы для отображения текущей информации о личности и группе.

  • -u → Отображает UID.

  • -n → Выводит имя пользователя вместо числового идентификатора.

🔹 Лучший пример использования:

  • Когда вам также необходимо знать членство в группах или привилегии.

Использование команды logname 🖥️ (зависит от сеанса входа)

Команда logname отображает исходное имя пользователя, использованное для начала сеанса.

Команда:

logname

Ключевое отличие:

  • logname всегда возвращает имя пользователя, использованное для входа в сеанс.

  • Если вы сменили пользователя с помощью su или sudo, он все равно покажет первоначальный логин.

🔹 Лучший пример использования:

  • Когда вам нужно знать , кто начал сеанс.


4. Использование команды “who” 🧑‍💻 (информация о сеансе)

Команда who отображает всех пользователей, вошедших в систему в данный момент, и информацию об их сеансе.

Команда:

кто я

Пример вывода:

john tty1 2025-08-29 09:12

Как работает:

  • Считывает данные о сеансе из /var/run/utmp.

  • Отображает исходное имя пользователя, терминал и временную метку входа.

🔹 Лучший пример использования:

  • При аудите текущих сеансов или многопользовательских сред.

Использование переменной окружения $USER 🌿 (самый быстрый метод)

В большинстве дистрибутивов Linux ваше текущее имя пользователя хранится в переменной окружения $USER.

Команда:

echo $USER

Пример вывода:

john

Как это работает:

  • Получает значение переменной $USER, заданное при входе в систему.

  • Легкий и очень быстрый.

🔹 Лучший пример использования:

  • Идеально подходит для сценариев оболочки и быстрого поиска имени пользователя.

Расширенные варианты использования

a) Внутри сценариев оболочки

#!/bin/bashecho "Script executed by: $USER"
  • Полезно для автоматизации протоколирования.

б) Проверка зарегистрированных пользователей на сервере

who

Пример вывода:

john pts/0 2025-08-29 10:20 (192.168.1.10) alice pts/1 2025-08-29 10:30 (192.168.1.15)
  • Отображает всех активных пользователей.

c) Комбинируйте с ps для владельцев процессов

ps -u $USER
  • Показывает все процессы, принадлежащие текущему пользователю.

Соображения безопасности

  • Многопользовательские серверы: Всегда проверяйте своего эффективного пользователя перед выполнением привилегированных команд.

  • Контекст Sudo: Используйте “whoami” вместо $USER, чтобы избежать подмены переменной окружения.

  • Скрипты протоколирования: Предпочитайте id -un для получения точных данных об имени пользователя.

Заключение

Linux предлагает несколько команд для отображения текущего имени пользователя, но каждая из них служит немного разным целям:

  • Используйте“whoami” для активной идентификации пользователя.
  • Используйте“id -un”, если вам нужна информация о группе.
  • Используйте“logname”, чтобы узнать, кто изначально вошел в систему.
  • Используйте echo $USER для быстрого поиска и написания сценариев оболочки.

Понимание этих различий очень важно для системного администрирования, автоматизации сценариев и аудита безопасности.