Pracując w wielu użytkowników w środowisku Linux, często istotne jest, aby wiedzieć z jakim kontem użytkownika jesteś aktualnie zalogowany. Niezależnie od tego, czy zarządzasz serwerami, piszesz skrypty automatyzacji, czy rozwiązujesz problemy z uprawnieniami, Linux oferuje wiele poleceń, aby wyświetlić aktualną nazwę logowania.

Używanie polecenia whoami

Polecenie whoami jest najprostszym sposobem na wyświetlenie aktualnej efektywnej nazwy użytkownika.

Jak to działa:

  • Odczytuje efektywny identyfikator użytkownika (EUID) bieżącego procesu.
  • Wyszukuje powiązaną nazwę użytkownika w /etc/passwd.
  • Zawsze wyświetla kto jesteś w danym momencie.

Najlepszy przypadek użycia:

  • Podczas używania sudo lub przełączania użytkowników, „whoami” pokazuje aktywną nazwę użytkownika.

Używanie polecenia id

Polecenie id dostarcza więcej niż tylko twoją nazwę użytkownika — pokazuje identyfikator użytkownika (UID), identyfikator grupy (GID) oraz członkostwa w grupach. Polecenie:

id -un

Alternatywnie, bez flag:

id

Jak to działa:

  • Używa bazy danych użytkowników systemu, aby wyświetlić aktualne informacje o tożsamości i grupach.

  • -u → Wyświetla UID.

  • -n → Drukuje nazwę użytkownika zamiast identyfikatorów numerycznych.

Używanie polecenia logname

Polecenie logname wyświetla oryginalną nazwę użytkownika używaną do rozpoczęcia sesji.

Polecenie:

logname

Kluczowa różnica:

  • logname zawsze zwraca nazwę użytkownika używaną do zalogowania się do sesji.

  • Jeśli przełączyłeś użytkowników za pomocą su lub sudo, nadal pokazuje oryginalne logowanie.

Używanie polecenia „who”

Polecenie who wyświetla wszystkich użytkowników aktualnie zalogowanych oraz szczegóły ich sesji.

Polecenie:

who am i

Przykład wyjścia:

john tty1 2025-08-29 09:12

Jak to działa:

  • Odczytuje dane sesji z /var/run/utmp.

  • Wyświetla oryginalną nazwę logowania użytkownika, terminal i znacznik czasu logowania.

🔹 Najlepszy przypadek użycia:

  • Podczas audytowania aktualnych sesji lub środowisk wieloużytkownikowych.

Używanie zmiennej środowiskowej $USER

W większości dystrybucji Linux, twoja aktualna nazwa użytkownika jest przechowywana w zmiennej środowiskowej $USER.

Polecenie:

echo $USER

Przykład wyjścia:

john

Jak to działa:

  • Pobiera wartość zmiennej $USER ustawionej podczas logowania.

  • Lekka i bardzo szybka.

Zaawansowane przypadki użycia

a) W skryptach powłoki

#!/bin/bash
echo "Script executed by: $USER"

Przydatne do logowania automatyzacji.

b) Sprawdzanie zalogowanych użytkowników na serwerze

who

Przykład wyjścia:

john pts/0 2025-08-29 10:20 (192.168.1.10)
alice pts/1 2025-08-29 10:30 (192.168.1.15)

Wyświetla wszystkich aktywnych użytkowników.

c) Połączenie z ps dla właścicieli procesów

ps -u $USER
  • Pokazuje wszystkie procesy należące do bieżącego użytkownika.

Rozważania dotyczące bezpieczeństwa

  • Serwery wieloużytkownikowe: Zawsze weryfikuj swój efektywny użytkownik przed uruchomieniem poleceń z uprawnieniami.

  • Kontekst sudo: Używaj „whoami” zamiast $USER, aby uniknąć oszukiwania zmiennych środowiskowych.

  • Skrypty logowania: Preferuj id -un dla dokładnego raportowania nazw użytkowników.

Podsumowanie

Linux oferuje wiele poleceń do wyświetlania twojej aktualnej nazwy logowania, ale każde z nich ma nieco inny cel:

  • Użyj „whoami” dla tożsamości aktywnego użytkownika.
  • Użyj „id -un”, gdy potrzebujesz również informacji o grupach.
  • Użyj „logname”, aby dowiedzieć się, kto pierwotnie się zalogował.
  • Użyj echo $USER do szybkich wyszukiwań i skryptów powłoki.

Zrozumienie tych różnic jest kluczowe dla administracji systemem, automatyzacji skryptów i audytów bezpieczeństwa.