Під час роботи у багатокористувацькому середовищі 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) Усередині скриптів оболонки
Корисно для автоматизації ведення логів.
b) Перевірка зареєстрованих користувачів на сервері
Вихідний приклад:
Показує всіх активних користувачів.
c) Поєднання з ps для власників процесів
Показує всі процеси, власником яких є поточний користувач.
Міркування щодо безпеки
Багатокористувацькі сервери: Завжди перевіряйте дійсного користувача перед виконанням привілейованих команд.
Контекст Sudo: Використовуйте “whoami” замість $USER, щоб уникнути підміни змінних оточення.
Журналювання скриптів: Надавайте перевагу id -un для точного звіту про ім’я користувача.
Висновок
Linux пропонує декілька команд для відображення вашого поточного імені користувача, але кожна з них має дещо інше призначення:
- Використовуйте“whoami” для ідентифікації активного користувача.
- Використовуйте“id -un “, якщо вам також потрібна інформація про групу.
- Використовуйте“logname”, щоб дізнатися, хто саме увійшов до системи.
- Використовуйте echo $USER для швидкого пошуку і написання сценаріїв командного інтерпретатора.
Розуміння цих відмінностей є критично важливим для системного адміністрування, автоматизації сценаріїв та аудиту безпеки.


