При работе в многопользовательской среде Linux часто бывает необходимо знать, под какой учетной запись ю вы вошли в систему. Если вы управляете серверами, пишете сценарии автоматизации или устраняете неполадки с правами доступа, Linux предоставляет множество команд для отображения текущего имени пользователя.
Использование команды whoami
Команда whoami – это самый простой способ отображения текущего эффективного имени пользователя
Как это работает:
- Считывает эффективный идентификатор пользователя (EUID) текущего процесса.
- Ищет связанное с ним имя пользователя в файле /etc/passwd.
- Всегда показывает , кем вы являетесь в данный момент.
Лучший пример использования:
При использовании sudo или переключении пользователей “whoami” показывает активного пользователя.
Использование команды id
Команда id позволяет узнать не только имя пользователя – она показывает идентификатор пользователя (UID), идентификатор группы (GID) и принадлежность к группе. Команда:
Альтернативный вариант, без флагов:
Как это работает:
Использует базу данных пользователей системы для отображения текущей информации о личности и группе.
-u → Отображает UID.
-n → Печатает имя пользователя вместо цифровых идентификаторов.
Использование команды logname
Команда logname отображает исходное имя пользователя, использованное для начала сеанса.
Команда:
Ключевое отличие:
logname всегда возвращает имя пользователя, использованное для входа в сессию.
Если вы сменили пользователя с помощью su или sudo, он все равно покажет первоначальный логин.
Использование команды “who”
Команда who отображает всех пользователей, вошедших в систему в данный момент, и сведения об их сеансе.
Команда:
Пример вывода:
Как это работает:
Считывает данные о сеансе из /var/run/utmp.
Отображает оригинальное имя пользователя, терминал и временную метку входа.
🔹 Лучший пример использования:
При аудите текущих сеансов или в многопользовательских средах.
Использование переменной окружения $USER
В большинстве дистрибутивов Linux ваше текущее имя пользователя хранится в переменной окружения $USER.
Команда:
Пример вывода:
Как это работает:
Получает значение переменной $USER, установленной при входе в систему.
Легкая и очень быстрая.
Расширенные сценарии использования
a) Внутри сценариев оболочки
Полезен для автоматизации протоколирования.
б) Проверка зарегистрированных пользователей на сервере
Пример вывода:
Отображает всех активных пользователей.
c) Объедините с ps для владельцев процессов
Показывает все процессы, принадлежащие текущему пользователю.
Соображения безопасности
Многопользовательские серверы: Всегда проверяйте своего эффективного пользователя перед выполнением привилегированных команд.
Контекст Sudo: Используйте “whoami” вместо $USER, чтобы избежать подмены переменной окружения.
Скрипты протоколирования: Предпочитайте id -un для точного определения имени пользователя.
Заключение
Linux предлагает несколько команд для отображения текущего имени пользователя, но каждая из них служит немного разным целям:
- Используйте“whoami” для идентификации активного пользователя.
- Используйте“id -un”, если вам нужна информация о группе.
- Используйте“logname”, чтобы узнать, кто изначально вошел в систему.
- Используйте echo $USER для быстрого поиска и написания сценариев оболочки.
Понимание этих различий очень важно для системного администрирования, автоматизации сценариев и аудита безопасности.


