Під час роботи у багатокористувацькому середовищі Linux часто важливо знати, під яким обліковим записом ви зараз ввійшли до системи. Незалежно від того, чи ви керуєте серверами, автоматизуєте сценарії або усуваєте проблеми з дозволами, Linux надає кілька команд для відображення вашого поточного імені користувача.

Використання команди whoami(рекомендована і найпростіша)

Команда whoami – це найпростіший спосіб показати ваше поточне ефективне ім’я користувача.

Команда:

whoami

Як це працює:

  • Зчитує ефективний ідентифікатор користувача (EUID) поточного процесу.
  • Шукає пов ‘язане з ним ім’я користувача у файлі /etc/passwd.
  • Завжди показує , хто ви є на даний момент.

🔹 Найкращий випадок використання:

  • При використанні sudo або перемиканні користувачів, “whoami” показує активного користувача.

Використання команди id 🧩 (Більш детальна інформація)

Команда id надає більше, ніж просто ваше ім’я користувача – вона показує ідентифікатор користувача (UID), ідентифікатор групи (GID) і членство в групах.

Виконання команди:

id -un

Альтернативно, без прапорів:

id

Як це працює:

  • Використовує базу даних користувачів системи для відображення поточної інформації про особу та групу.

  • -u → Показує ідентифікатор користувача.

  • -n → Друкує ім’я користувача замість числових ідентифікаторів.

🔹 Найкраще використання:

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

Використання команди logname 🖥️ (залежно від сеансу входу)

Команда logname показує оригінальне ім’я користувача, яке було використано для початку сеансу.

Команда:

logname

Ключова відмінність:

  • logname завжди повертає ім’я користувача, яке було використано для входу у сеанс.

  • Якщо ви змінили користувача за допомогою su або sudo, вона все одно покаже початковий логін.

🔹 Найкращий випадок використання:

  • Коли вам потрібно знати , хто почав сеанс.


4. Використання команди “who” 🧑‍💻 (Інформація про сеанс)

Команда who показує всіх користувачів, які ввійшли в систему в даний момент, а також інформацію про їхні сеанси.

Виконання команди:

who am i

Приклад виведення:

john tty1 2025-08-29 09:12

Принцип роботи:

  • Читає дані сеансу з /var/run/utmp.

  • Відображає оригінальне ім’я користувача, термінал і мітку часу входу в систему.

🔹 Найкращий випадок використання:

  • При аудиті поточних сеансів або багатокористувацьких середовищ.

Використання змінної середовища $USER 🌿 (найшвидший спосіб)

У більшості дистрибутивів Linux ваше поточне ім’я користувача зберігається в змінній середовища $USER.

Виконайте команду

echo $USER

Приклад виводу:

john

Принцип роботи:

  • Отримує значення змінної $USER, встановленої під час входу в систему.

  • Легкий і дуже швидкий.

🔹 Найкращий варіант використання:

  • Ідеально підходить для скриптів оболонки і швидкого отримання імені користувача.

Розширені варіанти використання

a) Усередині скриптів командного інтерпретатора

#!/bin/bashecho "Script executed by: $USER"
  • Корисно для автоматизації ведення журналу.

b) Перевірка зареєстрованих користувачів на сервері

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 для швидкого пошуку і написання сценаріїв командного інтерпретатора.

Розуміння цих відмінностей є критично важливим для системного адміністрування, автоматизації сценаріїв та аудиту безпеки.