15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

Użyj kodu:

Skills
Rozpocznij
02.01.2026

Jak zmienić użytkownika w Linuxie?

W systemie Linux fraza „zmień użytkownika” może opisywać kilka różnych działań — niektóre tymczasowe i oparte na sesji, inne trwałe i systemowe. Ponieważ Linux jest systemem operacyjnym wieloużytkownikowym z założenia, oferuje wiele sposobów na przełączanie tożsamości i uprawnień w zależności od tego, co chcesz osiągnąć: zarządzanie serwerem, uruchamianie aplikacji z ograniczonymi prawami, rozwiązywanie problemów z dostępem do plików lub restrukturyzacja kont użytkowników.

Zmiana „użytkownika” w systemie Linux może oznaczać kilka różnych rzeczy w zależności od kontekstu:

    • Przełączanie na inne konto w powłoce (np. z john na root)
      Jest to używane, gdy potrzebujesz interaktywnej sesji terminalowej jako inny użytkownik — często do administracji systemem lub aby przetestować, jak coś działa w innym środowisku konta.
    • Uruchamianie pojedynczej komendy jako inny użytkownik
      Idealne, gdy potrzebujesz tylko podwyższonych uprawnień lub innej tożsamości do jednego zadania (jak ponowne uruchomienie usługi lub uruchomienie polecenia bazy danych) bez pełnego przełączania sesji.
  • Zmiana domyślnego użytkownika logowania dla usługi/procesu
    Usługi (serwery WWW, bazy danych, aplikacje) powinny zazwyczaj działać pod dedykowanymi, nie-rootowymi użytkownikami dla bezpieczeństwa. Zmiana użytkownika usługi wpływa na to, jak działa proces i do czego ma dostęp.
  • Zmiana właściciela plików i katalogów
    Własność plików kontroluje dostęp. Jeśli uprawnienia są błędne — co jest powszechne po migracjach, przywracaniach lub wdrożeniach — „zmieniasz użytkownika” poprzez przypisanie nowej własności, aby odpowiednie konto mogło odczytywać/zapisywać pliki.
  • Zmiana atrybutów tożsamości użytkownika (nazwa użytkownika, UID, grupy)
    To jest zarządzanie kontem: zmiana nazwy użytkownika, zmiana jego UID lub dostosowanie członkostwa w grupie (np. przyznanie dostępu sudo). Te zmiany mogą wpływać na logowania, uprawnienia i dostęp do usług.

Ten przewodnik obejmuje wszystkie te scenariusze, pokazując, kiedy używać każdego podejścia, jak to zrobić bezpiecznie i jakich błędów unikać — abyś mógł pewnie zmieniać użytkowników bez łamania uprawnień, usług lub dostępu.

Przełącz na innego użytkownika (interaktywna powłoka)

su (zmień użytkownika)

su - username
  • – (lub -l) ładuje pełne środowisko logowania docelowego użytkownika: katalog domowy, PATH, profil powłoki.

  • Bez -, zachowujesz wiele ze swojego obecnego środowiska (może być mylące).

Przełącz na root:

su -

Uwaga bezpieczeństwa: W wielu dystrybucjach, su wymaga hasła docelowego użytkownika (np. hasła root), które często jest wyłączone.

sudo -i (preferowane dla powłok root/admin)

sudo -i

Daje ci powłokę logowania jako root (podobnie jak su -), używając twoich praw sudo zamiast hasła root.

Przełącz na innego użytkownika z powłoką logowania:

sudo -iu username

Uruchom pojedyncze polecenie jako inny użytkownik (nieinteraktywne)

sudo -u

sudo -u username whoami
sudo -u postgres psql

Uruchom z czystym środowiskiem podobnym do logowania:

sudo -iu username

Uruchom polecenie jako root

sudo systemctl restart nginx

Zmień „efektywnego użytkownika” działającego procesu (zaawansowana rzeczywistość)

Linux nie pozwala na „zmianę użytkownika” już działającego procesu na miejscu w większości praktycznych scenariuszy. Zamiast tego zazwyczaj:

  • ponownie uruchamiasz proces pod odpowiednim użytkownikiem

  • lub używasz menedżerów usług (systemd), aby zdefiniować użytkownika

Aby sprawdzić, który użytkownik uruchamia proces:

ps -eo user,pid,cmd | grep nginx

Lub:

ps -p <PID> -o user,group,cmd

Zmień, który użytkownik uruchamia usługę (systemd)

Większość produkcyjnych systemów Linux używa systemd. Usługi powinny działać jako dedykowani, nieuprzywilejowani użytkownicy.

Sprawdź konfigurację usługi:

systemctl cat myservice.service

Szukaj:

  • User=

  • Group=

Przykład nadpisania (bezpieczna metoda):

sudo systemctl edit myservice.service

Dodaj:

[Service]
User=myuser
Group=mygroup

Zastosuj:

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Zweryfikuj:

systemctl status myservice.service
ps -eo user,pid,cmd | grep myservice

Zmień właściciela plików (zmiana „użytkownika” dla plików)

chown (zmiana właściciela)

Zmień właściciela:

sudo chown username file.txt

Zmień właściciela i grupę:

sudo chown username:groupname file.txt

Rekurencyjnie (bądź ostrożny):

sudo chown -R username:groupname /var/www/site

Zachowaj symlinksy (unikaj zmiany celów linków):

sudo chown -h username:group symlink

Zaawansowana wskazówka: Dla dużych drzew, najpierw podglądaj:

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Zmień swoją tożsamość powłoki w porównaniu do zmiany samego konta

Potwierdź, kim jesteś

whoami
id

Potwierdź, kto jest zalogowany

who
w

Zobacz, który użytkownik uruchomił bieżącą powłokę za pomocą sudo

echo $USER
echo $SUDO_USER

Zmień nazwę użytkownika, UID, grupy (modyfikacja konta)

Zmień nazwę użytkownika (nazwa użytkownika)

sudo usermod -l newname oldname

Przenieś/zmień nazwę katalogu domowego:

sudo usermod -d /home/newname -m newname

Zaktualizuj również nazwę grupy (opcjonalnie):

sudo groupmod -n newname oldname

Zmień UID

sudo usermod -u 2001 username

Po zmianie UID, napraw własność plików:

sudo find / -user oldUID -exec chown -h username {} ;

Dodaj użytkownika do grupy (np. sudo)

sudo usermod -aG
sudo username # Debian/Ubuntu
sudo usermod -aG wheel username # RHEL/Alma/Rocky

Zweryfikuj:

id username

Szybka „ściągawka”

Przełącz użytkownika:

su - user
sudo -iu user

Uruchom polecenie jako inny użytkownik:

sudo -u user command

Uruchom powłokę root:

sudo -i

Zmień właściciela pliku:

sudo chown -R user:group /path

Zmień szczegóły konta:

sudo usermod -l new old
sudo usermod -d /home/new -m new
sudo usermod -aG
sudo user
15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

Użyj kodu:

Skills
Rozpocznij