Cara Mengganti Pengguna di Ubuntu: su, sudo & Eskalasi Hak Akses
- 9 November 2025
- 22.15
- Tutorial

Pendahuluan
Mengelola banyak akun user dan berpindah-pindah di antara mereka adalah bagian mendasar dari administrasi Linux. Ubuntu, distribusi Linux paling populer di dunia, menyediakan beberapa cara untuk mengganti user aktif, masing-masing dengan use case dan implikasi keamanan tersendiri. Memahami mekanisme ini memungkinkan workflow multiuser yang efisien, operasi administrasi yang aman, dan manajemen hak akses yang baik.
Panduan komprehensif ini membahas setiap metode untuk berpindah user di Ubuntu, mulai dari command line dasar hingga teknik privilege escalation lanjutan. Baik mengelola sistem bersama, tugas administrasi, maupun lingkungan multi-tenant, menguasai pergantian user penting untuk kemahiran Ubuntu.
Memahami manajemen user di Ubuntu
Jenis Akun Pengguna
Pengguna Reguler: Akun standar dengan hak istimewa terbatas, akses berkas terbatas, dan ketidakmampuan memodifikasi konfigurasi sistem.
Pengguna Root: Superuser dengan akses tanpa batas ke semua sumber daya sistem, mampu melakukan operasi apa pun termasuk yang berbahaya.
Pengguna Sistem: Akun khusus untuk layanan sistem (www-data untuk server web, mysql untuk database).
Pengguna Sudo: Akun reguler dengan hak istimewa superuser yang didelegasikan melalui konfigurasi sudo.
Eskalasi Hak Akses
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.
Prinsip: Jalankan operasi dengan hak istimewa minimum yang diperlukan; minimalkan waktu dengan akses tinggi; audit semua operasi yang diberi hak istimewa.
Perintah su (Switch User)
Sintaks Dasar
su [OPTIONS] [USERNAME]
Switching to Another Usersu john
Prompts for the target user’s password, then switches to that account. The environment remains the user’s original environment (not recommended).Beralih Pengguna dengan Lingkungan Baru
su - john
The hyphen (-) loads the complete environment of the target user, including:
-
Variabel HOME yang menunjuk ke direktori home pengguna
-
Variabel PATH dengan path perintah pengguna
-
File konfigurasi shell (.bashrc, .profile)
-
Direktori kerja diubah ke home pengguna
Best Practice: Always use su - to ensure proper environment configuration.
Berpindah ke user root
su -
Beralih ke pengguna root dengan lingkungan root lengkap. Meminta kata sandi root.
Opsi Perintah 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): Tentukan shell untuk sesi
su - john -s /bin/zsh
-m (Preserve environment): Keep current environment while switching
su -m johnPerintah sudo (Superuser Do)
Sintaks Dasar
sudo [OPTIONS] COMMAND
Menjalankan Perintah dengan Hak Akses Tinggi
sudo apt-get update # Update package lists (requires root)sudo systemctl restart ssh # Restart SSH servicesudo reboot # Reboot system
Menjalankan Shell Root Interaktif
sudo -i
Memulai shell root interaktif tanpa login sebagai root.
Menjalankan Perintah sebagai Pengguna Lain
sudo -u username commandMenjalankan perintah dengan hak akses pengguna yang ditentukan (tidak hanya root).
Opsi Perintah 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 timeoutsudo -v
-H (Home): Set HOME to target user’s home
sudo -H -u username commandsu – vs su: perbedaan utama
| Fitur | su | su – |
|---|---|---|
| Lingkungan | Mempertahankan lingkungan shell induk | Memuat lingkungan pengguna target |
| Variabel HOME | Tetap di home pengguna asli | Beralih ke home pengguna target |
| Variabel PATH | Mungkin menyertakan path pengguna asli | Berisi path standar pengguna target |
| Konfigurasi Shell | Tidak memuat .bashrc atau .profile | Memuat ~/.bashrc, ~/.profile |
| Direktori Kerja | Tetap di direktori saat ini | Beralih ke home pengguna |
| Direkomendasikan | Jarang; berpotensi membingungkan | Selalu untuk pergantian pengguna |
| Tingkat Risiko | Lebih tinggi (lingkungan campuran) | Lebih rendah (lingkungan bersih) |
Contoh Perbedaan
# Menggunakan su (BAD)
$ su johnPassword:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory# Menggunakan su - (GOOD)
$ su - johnPassword:
$ echo $HOME
/home/john # Correct home directory$ pwd
/home/john # Correct directoryBerpindah ke user root
Menggunakan su
su -
Password: (enter root password)
root@hostname:~#Menggunakan sudo
sudo -i[sudo] password for john: (enter john's password)
root@hostname:~#Perbedaan antara su – dan sudo -i
| Aspek | su – | sudo -i |
|---|---|---|
| Kata Sandi Diperlukan | Kata sandi root | Kata sandi pengguna saat ini |
| Pencatatan | Tidak dicatat | Dicatat oleh sudo |
| Jejak Audit | Minimal | Jejak audit lengkap |
| Keamanan | Lebih rendah (memerlukan berbagi kata sandi root) | Lebih tinggi (akuntabilitas individu) |
| Pengaturan Perusahaan Tipikal | Tidak dianjurkan | Recommended |
Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.
Menjalankan perintah sebagai user lain
Eksekusi Perintah Tunggal
sudo -u apache /usr/bin/apache2ctl restartsu - testuser -c "python /home/testuser/script.py"
Menjalankan Beberapa Perintah
sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"
Menjalankan Perintah Mempertahankan Direktori Saat Ini
sudo -u john pwd # Prints john's home (working directory changed)sudo -u john -C pwd # Prints current directory (with -C flag)Mengubah password user
Ubah Kata Sandi Sendiri
passwdMeminta kata sandi saat ini, lalu kata sandi baru (dua kali untuk konfirmasi).
Ubah Kata Sandi Pengguna Lain (Memerlukan Root)
sudo passwd john
Tidak memerlukan kata sandi saat ini; meminta kata sandi baru (otoritas root).
Atur Kebijakan Kedaluwarsa
sudo chage -l john # View password aging infosudo chage -M 90 john # Force password change every 90 dayssudo chage -d 0 john # Force password change on next login
Izin dan grup user
Lihat Grup Pengguna
groups john # Show groups current user belongs togroups # Show own groupsid john # Detailed UID, GID, groupsTambahkan Pengguna ke Grup
sudo usermod -aG groupname username
Example: Add user to sudo group
sudo usermod -aG sudo john
Hapus Pengguna dari Grup
sudo deluser username groupname
Buat Pengguna Baru
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
Options:
-
-m: Create home directory -
-s: Specify shell -
-G: Tetapkan ke grup
Contoh praktis
Example 1: Administrative Task with Eskalasi Hak Akses
#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get updatesudo apt-get upgrade -y
echo "System update complete"
Contoh 2: Menjalankan Tugas Server Web
# 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/htmlContoh 3: Menjalankan Pemeliharaan Database
# 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;"
Contoh 4: Manajemen Pengguna Massal
#!/bin/bash# Create multiple usersfor user in user1 user2 user3; dosudo useradd -m -s /bin/bash "$user"echo "Please set password for $user:"sudo passwd "$user"done# Add all to sudo groupfor user in user1 user2 user3; dosudo usermod -aG sudo "$user"donePertimbangan keamanan
Keamanan Kata Sandi
Kata Sandi Root: Jaga keamanannya; jangan pernah membagikannya dengan orang yang tidak tepercaya
Konfigurasi Sudo: Delegasikan hak istimewa tertentu daripada akses root penuh
Penuaan Kata Sandi: Terapkan perubahan kata sandi berkala
# Configure password agingsudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warningAudit dan Pencatatan
All sudo commands are logged:
sudo grep COMMAND /var/log/auth.log
View detailed sudo history:
sudo journalctl _COMM=sudoRestricting Eskalasi Hak Akses
Configure sudoers file safely:
sudo visudo # Always use visudo for editing sudoers
Contoh konfigurasi sudoers (limiting what john can run):
john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginxjohn ALL=(ALL) /usr/bin/apt-getBatas Waktu Sesi
# Set sudo timeoutsudo -v # Extend timeoutsudo -k # Invalidate sudo credentialsMengapa infrastruktur remote memakai switch user
Infrastruktur RDP dan SSH sering memerlukan:
-
Beberapa pengguna administratif dengan tingkat hak istimewa berbeda
-
Akun layanan untuk proses otomatis
-
Jejak audit untuk kepatuhan (pencatatan sudo)
-
Eskalasi hak istimewa untuk tugas administratif
Manajemen Infrastruktur Melalui RDP.Monster
Managing Ubuntu systems remotely requires robust, secure access:
Akses SSH untuk Eksekusi Perintah
-
Eksekusi perintah pergantian pengguna dari jarak jauh
-
Administrasi otomatis melalui skrip
-
Kontrol penuh atas manajemen pengguna
Dukungan Banyak Akun Pengguna
-
Buat pengguna administratif
-
Delegasi hak istimewa dengan tepat
-
Pertahankan jejak audit
Administrasi Jarak Jauh yang Aman
-
Enkripsi SSH untuk semua operasi pergantian pengguna
-
Autentikasi berbasis kunci untuk akses pemrograman
-
Pencatatan dan pemantauan komprehensif
Terapkan infrastruktur Ubuntu VPS dengan kemampuan manajemen pengguna yang aman melalui RDP.Monster
Kesimpulan
Pergantian pengguna dan eskalasi hak istimewa adalah keterampilan dasar administrasi Ubuntu. Memahami perbedaan antara su, sudo, dan manajemen kata sandi memungkinkan administrasi sistem multi-pengguna yang efektif sambil menjaga keamanan melalui delegasi hak istimewa yang tepat dan jejak audit.
Praktik terbaik Ubuntu modern sangat mendukung sudo daripada su untuk eskalasi hak istimewa, memungkinkan akuntabilitas dan pencatatan komprehensif sambil meminimalkan berbagi kata sandi root. Konfigurasi sudoers yang tepat dengan mendelegasikan hak istimewa tertentu memberikan keseimbangan keamanan yang sangat baik antara kegunaan dan akses 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.
Hosting VPS Ubuntu yang andal
Nikmati kontrol penuh dan performa kilat dengan VPS Linux kami. Sempurna untuk hosting aplikasi, mengelola server, dan mengoptimalkan workflow.
Dedicated Server berkinerja tinggi
Butuh kontrol dan tenaga maksimal? Dedicated Server kami menawarkan performa tak tertandingi untuk tugas berat.
Pertanyaan yang sering ditanyakan
Sebaiknya pakai su atau sudo?
Ini memberi akuntabilitas, butuh password masing-masing, dan menyediakan audit trail lengkap.
Kenapa perintah su saya tidak jalan?
Try sudo -u username instead if you have sudo privileges.
Bisakah berpindah user tanpa password?
Untuk su, Anda selalu butuh password user target.
Apa beda su - dengan su --login?
Berapa lama hak sudo berlaku?
Bisakah menjalankan beberapa perintah sekaligus sebagai user lain?
Bagaimana cara melihat hak sudo saya?
Kenapa PATH saya berubah saat ganti user?
Artikel terkait




