RDP Monster

Jak zmienić użytkownika w Ubuntu: su, sudo i eskalacja uprawnień

Jak zmienić użytkownika w Ubuntu: su, sudo i eskalacja uprawnień

Wprowadzenie

Zarządzanie wieloma kontami użytkowników i przełączanie się między nimi to podstawa administracji Linuksem. Ubuntu, najpopularniejsza dystrybucja Linuksa na świecie, oferuje kilka sposobów zmiany aktywnego użytkownika — każdy z innymi zastosowaniami i konsekwencjami dla bezpieczeństwa. Znajomość tych mechanizmów pozwala budować wydajne, wielokrotnie współdzielone workflow, bezpieczne operacje administracyjne i właściwe zarządzanie uprawnieniami.

Ten kompletny przewodnik omawia wszystkie metody zmiany użytkownika w Ubuntu — od podstawowych komend po zaawansowane techniki eskalacji uprawnień. Czy zarządzasz systemami współdzielonymi, zadaniami administracyjnymi, czy środowiskami multi-tenant, opanowanie przełączania użytkowników jest kluczem do sprawnego korzystania z Ubuntu.

 

Zarządzanie użytkownikami w Ubuntu

Typy kont użytkowników

Zwykli użytkownicy: Standardowe konta z ograniczonymi uprawnieniami, ograniczonym dostępem do plików i niemożnością modyfikowania konfiguracji systemu.

Użytkownik root: Superużytkownik z nieograniczonym dostępem do wszystkich zasobów systemu, zdolny do każdej operacji, w tym niebezpiecznych.

Użytkownicy systemowi: Specjalne konta dla usług systemowych (www-data dla serwerów WWW, mysql dla baz danych).

Użytkownicy sudo: Zwykłe konta z delegowanymi uprawnieniami superużytkownika poprzez konfigurację sudo.

Eskalacja uprawnień

Why Escalate?: Most administrative tasks require elevated privileges. Rather than logging in as root (dangerous), Ubuntu uses privilege escalation to grant specific elevated permissions temporarily.

Zasady: Wykonywanie operacji z minimalnie niezbędnymi uprawnieniami; minimalizowanie czasu z podwyższonym dostępem; audytowanie wszystkich uprzywilejowanych operacji.

 

Polecenie su (Switch User)

Podstawowa składnia

su [OPTIONS] [USERNAME]
Switching to Another User
su john
Prompts for the target user’s password, then switches to that account. The environment remains the user’s original environment (not recommended).

Zmiana użytkownika z nowym środowiskiem

su - john


The hyphen (-) loads the complete environment of the target user, including:

  • Zmienna HOME wskazująca na katalog domowy użytkownika

  • Zmienna PATH ze ścieżkami poleceń użytkownika

  • Pliki konfiguracji shell (.bashrc, .profile)

  • Katalog roboczy zmieniony na home użytkownika

Best Practice: Always use su - to ensure proper environment configuration.


Przełączanie na użytkownika root

su -


Przełącza na użytkownika root z pełnym środowiskiem root. Prosi o hasło root.

Opcje polecenia su

-c (Command): Execute single command as another user without full session

su - john -c "ls -la /home/john"

-l (Login): Identical to using hyphen; creates login shell

su --login john

 

-s (Shell): Określ powłokę dla sesji

su - john -s /bin/zsh

 

-m (Preserve environment): Keep current environment while switching

su -m john

Polecenie sudo (Superuser Do)

Podstawowa składnia
sudo [OPTIONS] COMMAND


Wykonywanie polecenia z podwyższonymi uprawnieniami

sudo apt-get update # Update package lists (requires root)
sudo systemctl restart ssh # Restart SSH service
sudo reboot # Reboot system


Uruchamianie interaktywnej powłoki root

sudo -i

Uruchamia interaktywną powłokę root bez logowania jako root.

Uruchamianie polecenia jako inny użytkownik

sudo -u username command

Wykonuje polecenie z uprawnieniami wskazanego użytkownika (nie tylko root).


Opcje polecenia sudo

-l (List): Display allowed commands

sudo -l

-k (Invalidate): Clear sudo credentials (requires password on next use)

sudo -k

 

-p (Prompt): Custom password prompt

sudo -p "Enter admin password: " apt-get update
-v (Validate): Extend sudo timeout
sudo -v

 

-H (Home): Set HOME to target user’s home

sudo -H -u username command

su – a su: kluczowe różnice

Funkcja su su –
Środowisko Zachowuje środowisko powłoki nadrzędnej Ładuje środowisko docelowego użytkownika
Zmienna HOME Pozostaje w home oryginalnego użytkownika Przechodzi do home docelowego użytkownika
Zmienna PATH Może zawierać ścieżki oryginalnego użytkownika Zawiera standardowe ścieżki docelowego użytkownika
Konfiguracja Shell Nie ładuje .bashrc ani .profile Ładuje ~/.bashrc, ~/.profile
Katalog roboczy Pozostaje w bieżącym katalogu Przechodzi do home użytkownika
Zalecane Rzadko; możliwe nieporozumienia Zawsze przy zmianie użytkownika
Poziom ryzyka Wyższy (mieszane środowiska) Niższy (czyste środowisko)

 

Przykładowa różnica

# Z użyciem su (BAD)
$ su john
Password:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory
# Z użyciem su - (GOOD)
$ su - john
Password:
$ echo $HOME
/home/john # Correct home directory
$ pwd
/home/john # Correct directory

Przełączanie na użytkownika root

Z użyciem su

su - Password: (enter root password)
root@hostname:~#

Z użyciem sudo

sudo -i
[sudo] password for john: (enter john's password)
root@hostname:~#

Różnice między su – a sudo -i

Aspekt su – sudo -i
Wymagane hasło Hasło root Hasło bieżącego użytkownika
Logowanie Nie zarejestrowane Zapisywane przez sudo
Ślad audytu Minimalnyny Pełny ślad audytu
Bezpieczeństwo Niższe (wymaga udostępniania hasła root) Wyższe (indywidualna odpowiedzialność)
Typowa konfiguracja korporacyjna Odradzane Recommended

Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.

 

Uruchamianie poleceń jako inny użytkownik

Wykonaj pojedyncze polecenie

sudo -u apache /usr/bin/apache2ctl restart
su - testuser -c "python /home/testuser/script.py"

Uruchamianie wielu poleceń

sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"

Uruchamianie poleceń z zachowaniem bieżącego katalogu

sudo -u john pwd # Prints john's home (working directory changed)
sudo -u john -C pwd # Prints current directory (with -C flag)

Zmiana hasła użytkownika

Zmień własne hasło

passwd

Pyta o bieżące hasło, a następnie o nowe hasło (dwukrotnie do potwierdzenia).

Zmień hasło innego użytkownika (wymagane root)

sudo passwd john

Bieżące hasło nie jest wymagane; prosi o nowe hasło (uprawnienia root).

Ustaw zasady wygasania

sudo chage -l john # View password aging info
sudo chage -M 90 john # Force password change every 90 days
sudo chage -d 0 john # Force password change on next login

Uprawnienia użytkownika i grupy

Wyświetl grupy użytkowników

groups john # Show groups current user belongs to
groups # Show own groups
id john # Detailed UID, GID, groups

Dodaj użytkownika do grupy

sudo usermod -aG groupname username

 

Example: Add user to sudo group

sudo usermod -aG sudo john

Usuń użytkownika z grupy

sudo deluser username groupname

Utwórz nowego użytkownika

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser

Options:

  • -m: Create home directory

  • -s: Specify shell

  • -G: Przypisz do grup

 

Praktyczne przykłady

Example 1: Administrative Task with Eskalacja uprawnień

#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get update
sudo apt-get upgrade -y
echo "System update complete"

Przykład 2: Uruchamianie zadań serwera WWW

# Stop web server as specific service user
sudo -u www-data /opt/webapp/stop.sh
# Check web server permissions as www-data
sudo -u www-data ls -la /var/www/html

Przykład 3: Konserwacja bazy danych

# Backup database as specific user
sudo -u mysql mysqldump -u root -p database_name > backup.sql
# Run database optimization
sudo -u mysql mysql -u root -p -e "OPTIMIZE TABLE table_name;"

Przykład 4: Zarządzanie użytkownikami wsadowo

#!/bin/bash
# Create multiple users
for user in user1 user2 user3; do
sudo useradd -m -s /bin/bash "$user"
echo "Please set password for $user:"
sudo passwd "$user"
done
# Add all to sudo group
for user in user1 user2 user3; do
sudo usermod -aG sudo "$user"
done

Kwestie bezpieczeństwa

Bezpieczeństwo haseł

Hasło root: Trzymaj bezpiecznie; nigdy nie udostępniaj nieufnym osobom

Konfiguracja sudo: Deleguj określone uprawnienia zamiast pełnego dostępu root

Wygasanie haseł: Wymuszaj okresowe zmiany haseł

# Configure password aging
sudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warning

Audyt i logowanie

All sudo commands are logged:

sudo grep COMMAND /var/log/auth.log

 

View detailed sudo history:

sudo journalctl _COMM=sudo

Restricting Eskalacja uprawnień

Configure sudoers file safely:

sudo visudo # Always use visudo for editing sudoers

 

Przykładowa konfiguracja sudoers (limiting what john can run):

john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
john ALL=(ALL) /usr/bin/apt-get

Limit czasu sesji

# Set sudo timeout
sudo -v # Extend timeout
sudo -k # Invalidate sudo credentials

Dlaczego infrastruktura zdalna używa przełączania użytkowników

Infrastruktura RDP i SSH często wymaga:

  • Wielu użytkowników administracyjnych z różnymi poziomami uprawnień

  • Konta usług dla zautomatyzowanych procesów

  • Ślady audytu dla zgodności (logowanie sudo)

  • Eskalacja uprawnień dla zadań administracyjnych

Zarządzanie infrastrukturą przez RDP.Monster

Managing Ubuntu systems remotely requires robust, secure access:

Dostęp SSH do wykonywania poleceń

  • Zdalne wykonywanie poleceń przełączania użytkowników

  • Zautomatyzowana administracja przez skrypty

  • Pełna kontrola nad zarządzaniem użytkownikami

Obsługa wielu kont użytkowników

  • Twórz użytkowników administracyjnych

  • Odpowiednio deleguj uprawnienia

  • Utrzymuj ślady audytu

Bezpieczna administracja zdalna

  • Szyfrowanie SSH dla wszystkich operacji przełączania użytkowników

  • Uwierzytelnianie oparte na kluczach dla dostępu programowego

  • Kompleksowe logowanie i monitorowanie

Wdróż infrastrukturę Ubuntu VPS z bezpiecznymi możliwościami zarządzania użytkownikami przez RDP.Monster

 

Podsumowanie

Przełączanie użytkowników i eskalacja uprawnień to fundamentalne umiejętności administracji Ubuntu. Zrozumienie różnic między su, sudo i zarządzaniem hasłami umożliwia efektywną administrację systemami wieloużytkownikowymi przy zachowaniu bezpieczeństwa poprzez odpowiednią delegację uprawnień i ślady audytu.

Nowoczesne najlepsze praktyki Ubuntu zdecydowanie preferują sudo zamiast su do eskalacji uprawnień, umożliwiając odpowiedzialność i kompleksowe logowanie przy jednoczesnym minimalizowaniu udostępniania hasła root. Właściwa konfiguracja sudoers delegująca określone uprawnienia zapewnia doskonałą równowagę bezpieczeństwa między użytecznością a dostępem control.

Managing complex Ubuntu infrastructure requiring sophisticated user management and secure administrative access? RDP.Monster provides SSH-based Ubuntu VPS solutions enabling seamless user management and privilege escalation across your infrastructure. Deploy professionally-managed Ubuntu systems today.

Wydajny hosting Ubuntu VPS

Doświadcz pełnej kontroli i szalonej wydajności dzięki naszym VPS-om Linux. Idealne do hostowania aplikacji, zarządzania serwerami i optymalizacji workflow.

Dedicated Servers

Wydajne serwery dedykowane

Potrzebujesz maksymalnej kontroli i mocy? Nasze serwery dedykowane oferują niedoścignioną wydajność do najbardziej wymagających zadań.

Najczęściej zadawane pytania

Co używać — su czy sudo?

We współczesnych systemach preferowane jest sudo.

Daje rozliczalność, wymaga indywidualnych haseł i zapewnia pełny ślad audytu.

Dlaczego moje polecenie su nie działa?

Możliwe, że nie znasz hasła użytkownika docelowego.

Try sudo -u username instead if you have sudo privileges.

Czy mogę zmienić użytkownika bez hasła?

Tak, z użyciem sudo: skonfiguruj sudoers z NOPASSWD.

W su zawsze potrzebne jest hasło docelowego użytkownika.

Jaka jest różnica między su - a su --login?

Są identyczne: obie tworzą powłoki logowania z pełnym wczytaniem środowiska.

Jak długo trzymają się uprawnienia sudo?

Domyślnie 15 minut. Można dostosować w konfiguracji sudoers.

Czy mogę uruchomić kilka poleceń jako inny użytkownik?

Tak: sudo bash -c "komenda1 && komenda2 && komenda3"

Jak sprawdzić swoje uprawnienia sudo?

Uruchom sudo -l, aby wyświetlić dozwolone polecenia.

Dlaczego mój PATH zmienia się po przełączeniu użytkownika?

Użyj su -, aby załadować pełne środowisko użytkownika docelowego, w tym właściwy PATH.

Register to our reseller program

Your informations

If you have any question, contact us by clicking here !
Name(Required)
Enter your email address, you must have an account on manager.rdp.monster !

Your company

Enter your website address if you have one
Quickly explain how you're going to sell services to your customers. For example, talk to people on forums.

Używamy plików cookie !

Używamy plików cookie, aby poprawić Twoje doświadczenie przeglądania, oferować spersonalizowane reklamy lub treści i analizować nasz ruch. Klikając „Akceptuję”, wyrażasz zgodę na używanie przez nas plików cookie.