Cara Mengubah Pengguna di Linux: Panduan Lengkap
Linux adalah sistem operasi multi-pengguna menurut desain, dan mengelola identitas pengguna adalah salah satu keterampilan paling fundamental yang perlu dikuasai oleh administrator sistem apa pun. Baik Anda mengelola lingkungan VPS Hosting, mengonfigurasi server web, atau memecahkan masalah izin file setelah deployment, memahami cara mengubah pengguna di Linux sangat penting.
Frasa “ubah pengguna” di Linux sebenarnya mencakup beberapa operasi yang berbeda, masing-masing dengan alat, risiko, dan praktik terbaik sendiri:
- Beralih ke akun lain di shell (misalnya, dari
johnkeroot) untuk sesi interaktif - Menjalankan perintah tunggal sebagai pengguna berbeda tanpa sepenuhnya beralih sesi
- Mengubah pengguna mana yang menjalankan layanan atau proses — kritis untuk pengerasan keamanan
- Mengubah kepemilikan file dan direktori — penting setelah migrasi, pemulihan, atau deployment
- Memodifikasi atribut akun pengguna — mengganti nama pengguna, mengubah UID, atau menyesuaikan keanggotaan grup
Panduan ini mencakup semua skenario ini secara mendalam, menjelaskan kapan menggunakan setiap pendekatan, cara melakukannya dengan aman, dan kesalahan mana yang harus dihindari — sehingga Anda dapat mengelola pengguna Linux dengan percaya diri tanpa merusak izin, layanan, atau akses.
Beralih ke Pengguna Lain (Interactive Shell)
Ketika Anda membutuhkan sesi terminal interaktif penuh sebagai pengguna lain — untuk administrasi sistem, pengujian perilaku aplikasi di bawah akun berbeda, atau mengakses akun layanan — Linux menyediakan dua alat utama: su dan sudo.
Menggunakan su (Switch User)
Perintah su menggantikan identitas pengguna Anda saat ini dengan pengguna lain:
su - usernameFlag - (juga ditulis sebagai -l atau --login) penting: ini memuat lingkungan login lengkap pengguna target, termasuk direktori home mereka, PATH, profil shell, dan variabel lingkungan. Tanpa flag -, Anda mewarisi banyak dari lingkungan Anda saat ini, yang dapat menyebabkan perilaku halus dan membingungkan — terutama saat menjalankan skrip atau layanan.
Untuk beralih langsung ke root:
su -> Catatan keamanan: Pada banyak distribusi Linux modern, kata sandi akun root dinonaktifkan secara default (terutama pada sistem berbasis Ubuntu). Dalam kasus ini, su ke root akan gagal, dan sudo adalah pendekatan yang benar.
Menggunakan sudo -i (Lebih Disukai untuk Root/Admin Shells)
sudo -iIni memberikan Anda root login shell setara dengan su -, tetapi mengautentikasi menggunakan hak istimewa sudo Anda sendiri daripada memerlukan kata sandi root. Ini adalah pendekatan yang direkomendasikan pada sebagian besar distribusi modern karena:
- Menghindari kebutuhan untuk berbagi atau mengetahui kata sandi root
- Semua tindakan dicatat melalui jejak audit sudo
- Ini menghormati konfigurasi dan pembatasan sudoers Anda
Beralih ke Pengguna Lain dengan Login Shell via sudo
sudo -iu usernameIni menggabungkan -i (login shell) dan -u (pengguna target), memberikan Anda lingkungan login yang bersih sebagai pengguna yang ditentukan — tanpa memerlukan kata sandi pengguna tersebut.
Jalankan Satu Perintah sebagai Pengguna Lain
Sering kali Anda tidak memerlukan sesi interaktif penuh — Anda hanya perlu menjalankan satu perintah dengan identitas yang berbeda. Ini adalah pola paling umum dan paling aman untuk eskalasi hak istimewa.
Menggunakan sudo -u
sudo -u username whoamisudo -u postgres psqlContoh kedua sangat umum dalam administrasi basis data — beralih ke pengguna sistem postgres untuk mengakses PostgreSQL tanpa autentikasi kata sandi.
Jalankan Perintah dengan Lingkungan Login Bersih
sudo -iu username command_hereIni memastikan perintah berjalan dengan lingkungan pengguna target penuh, bukan variabel sesi Anda saat ini.
Jalankan Perintah sebagai Root
sudo systemctl restart nginxIni adalah pola standar untuk tugas administratif: jalankan satu perintah istimewa tanpa membuka shell root.
Ubah Pengguna yang Menjalankan Layanan (systemd)
Di hampir semua distribusi Linux modern, systemd mengelola layanan. Untuk keamanan, setiap layanan harus berjalan di bawah akun pengguna khusus yang tidak memiliki hak istimewa daripada root. Menjalankan layanan sebagai root adalah risiko keamanan yang signifikan — jika layanan dikompromikan, penyerang mendapatkan akses root ke seluruh sistem.
Ini sangat penting pada Dedicated Servers dan lingkungan VPS produksi di mana beberapa layanan mungkin berjalan secara bersamaan.
Periksa Konfigurasi Layanan Saat Ini
systemctl cat myservice.serviceCari direktif User= dan Group= di bagian [Service]:
[Service]
User=www-data
Group=www-dataGanti Pengguna Layanan (Metode Aman)
Daripada mengedit file unit asli (yang mungkin ditimpa pada pembaruan paket), gunakan systemctl edit untuk membuat penggantian drop-in:
sudo systemctl edit myservice.serviceIni membuka editor di mana Anda menambahkan:
[Service]
User=myuser
Group=mygroupSimpan file, kemudian terapkan perubahan:
sudo systemctl daemon-reload
sudo systemctl restart myservice.serviceVerifikasi Layanan Berjalan sebagai Pengguna yang Benar
systemctl status myservice.serviceps -eo user,pid,cmd | grep myservicePeriksa Pengguna Proses yang Sedang Berjalan
ps -eo user,pid,cmd | grep nginxps -p <PID> -o user,group,cmd> Penting: Linux tidak memungkinkan Anda mengubah pengguna dari proses yang sudah berjalan di tempat. Anda harus memulai ulang proses (atau mengonfigurasi manajer layanan untuk meluncurkannya di bawah pengguna yang benar) agar perubahan berlaku.
Ubah Kepemilikan File dengan chown
Kepemilikan file adalah bagian inti dari model izin Linux. Setelah migrasi, deployment, backup, atau restore, kepemilikan dapat berakhir ditugaskan ke pengguna yang salah — menyebabkan kesalahan izin ditolak, aplikasi web yang rusak, atau data yang tidak dapat diakses. Perintah chown adalah alat utama Anda untuk memperbaiki ini.
Ini adalah tugas umum saat menyiapkan lingkungan Shared Web Hosting atau men-deploy aplikasi web di VPS.
Ubah Pemilik File
sudo chown username file.txtUbah Pemilik dan Grup
sudo chown username:groupname file.txtPerubahan Kepemilikan Rekursif (Gunakan dengan Hati-hati)
sudo chown -R username:groupname /var/www/siteFlag -R menerapkan perubahan secara rekursif ke semua file dan subdirektori. Gunakan ini dengan hati-hati — menerapkannya ke path yang salah (misalnya / atau /etc) dapat merusak seluruh sistem Anda.
Pertahankan Symlink
sudo chown -h username:groupname symlinkTanpa -h, chown mengikuti tautan simbolis dan mengubah kepemilikan file target, bukan symlink itu sendiri. Gunakan -h ketika Anda secara khusus ingin mengubah kepemilikan symlink.
Pratinjau Kepemilikan Sebelum Membuat Perubahan
Untuk pohon direktori besar, selalu pratinjau sebelum menerapkan chown rekursif:
find /path -maxdepth 2 -printf '%u:%g %pn' | headIni menampilkan pemilik dan grup saat ini untuk dua tingkat teratas pohon direktori, memungkinkan Anda mengonfirmasi cakupan perubahan sebelum berkomitmen.
Konfirmasi Identitas Anda Saat Ini
Sebelum membuat perubahan, selalu verifikasi siapa Anda dan konteks apa yang Anda operasikan. Ini mencegah perubahan yang tidak disengaja dibuat di akun yang salah.
Periksa Pengguna Saat Ini Anda
whoamiDapatkan Informasi Identitas Lengkap (Pengguna, Grup, UIDs)
idContoh output:
uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),1001(docker)Lihat Siapa yang Masuk ke Sistem
whowPeriksa Pengguna Asli Saat Menggunakan sudo
Ketika Anda meningkatkan dengan sudo, dua variabel lingkungan relevan:
echo $USER # The current effective user (root)
echo $SUDO_USER # The original user who invoked sudo (e.g., alice)Perbedaan ini penting dalam skrip — $SUDO_USER memberi tahu Anda siapa yang benar-benar menjalankan perintah.
Ubah Atribut Akun Pengguna
Kadang-kadang "mengubah pengguna" berarti memodifikasi akun itu sendiri: mengganti namanya, mengubah UID, atau menyesuaikan keanggotaan grup. Ini adalah perubahan permanen di seluruh sistem yang dapat mempengaruhi login, izin file, dan akses layanan.
> Best practice: Sebelum membuat modifikasi akun, pastikan pengguna telah logout dan tidak ada proses yang berjalan di bawah akun tersebut.
Ganti Nama Pengguna (Ubah Nama Pengguna)
sudo usermod -l newname oldnameIni mengubah nama login tetapi tidak secara otomatis mengganti nama direktori home. Untuk juga memindahkan dan mengganti nama direktori home:
sudo usermod -d /home/newname -m newnameJika pengguna memiliki grup utama dengan nama yang sama dengan nama pengguna lama mereka (yang merupakan default di sebagian besar distribusi), perbarui nama grup juga:
sudo groupmod -n newname oldnameUbah UID Pengguna
sudo usermod -u 2001 username> Kritis: Setelah mengubah UID, semua file yang sebelumnya dimiliki oleh UID lama akan muncul sebagai dimiliki oleh ID numerik yang tidak dikenal. Anda harus memperbaiki ini segera:
sudo find / -user oldUID -exec chown -h username {} ;Ganti oldUID dengan UID numerik sebelumnya. Perintah ini mencari seluruh filesystem untuk file dengan UID lama dan menetapkan kembali ke nama pengguna baru.
Tambahkan Pengguna ke Grup
Kasus penggunaan paling umum adalah memberikan akses sudo kepada pengguna:
Debian/Ubuntu:
sudo usermod -aG sudo usernameRHEL / AlmaLinux / Rocky Linux:
sudo usermod -aG wheel usernameFlag -a sangat penting — ini menambahkan pengguna ke grup tanpa menghapusnya dari grup yang ada. Menghilangkan -a akan mengganti semua keanggotaan grup dengan hanya grup yang ditentukan.
Verifikasi Keanggotaan Grup
id usernameLembar Referensi Cepat
Berikut adalah referensi konsolidasi untuk semua operasi pengguna-switching dan manajemen yang tercakup dalam panduan ini:
| Tugas | Perintah | |
|---|---|---|
| Beralih ke pengguna lain (login shell) | su - username | |
| Beralih ke pengguna lain via sudo | sudo -iu username | |
| Buka shell root | sudo -i | |
| Jalankan perintah sebagai pengguna lain | sudo -u username command | |
| Jalankan perintah sebagai postgres | sudo -u postgres psql | |
| Periksa pengguna saat ini | whoami | |
| Periksa identitas lengkap dan grup | id | |
| Periksa invoker sudo asli | echo $SUDO_USER | |
| Ubah pemilik file | sudo chown username file | |
| Ubah pemilik dan grup file | sudo chown username:group file | |
| Perubahan kepemilikan rekursif | sudo chown -R username:group /path | |
| Pratinjau kepemilikan direktori | find /path -maxdepth 2 -printf '%u:%g %pn' | |
| Ubah pengguna layanan (systemd) | sudo systemctl edit myservice.service | |
| Muat ulang systemd setelah perubahan | sudo systemctl daemon-reload | |
| Verifikasi pengguna proses | `ps -eo user,pid,cmd | grep service` |
| Ubah nama pengguna | sudo usermod -l newname oldname | |
| Pindahkan direktori home | sudo usermod -d /home/newname -m newname | |
| Ubah UID | sudo usermod -u 2001 username | |
| Perbaiki kepemilikan setelah perubahan UID | sudo find / -user oldUID -exec chown -h username {} ; | |
| Tambahkan pengguna ke grup sudo | sudo usermod -aG sudo username | |
| Verifikasi keanggotaan grup | id username |
Ringkasan
Mengelola pengguna di Linux bukan merupakan operasi tunggal — ini adalah keluarga tugas terkait, masing-masing dengan alat dan implikasinya sendiri:
- Gunakan
sudo -iu usernameuntuk sesi interaktif sebagai pengguna lain (lebih disukai daripadasupada sistem modern) - Gunakan
sudo -u username commanduntuk menjalankan perintah individual dengan identitas berbeda - Gunakan
systemctl edituntuk mengubah dengan aman pengguna mana yang menjalankan layanan systemd - Gunakan
chownuntuk memperbaiki kepemilikan file setelah deployment, migrasi, atau masalah izin - Gunakan
usermoduntuk perubahan akun permanen — penamaan ulang, perubahan UID, dan manajemen grup
Memahami perbedaan ini membantu Anda menghindari kesalahan umum seperti merusak izin layanan, mengunci diri dari file, atau secara tidak sengaja memberikan hak istimewa yang berlebihan.
Jika Anda menjalankan infrastruktur berbasis Linux — baik itu server web, database, atau tumpukan aplikasi kustom — memiliki lingkungan hosting yang dikonfigurasi dengan baik membuat manajemen pengguna jauh lebih mudah. AlexHost menawarkan Panel Kontrol VPS yang fleksibel dan opsi VPS dengan cPanel yang memberi Anda akses root penuh bersama antarmuka manajemen intuitif, sehingga Anda dapat menerapkan semua yang ada dalam panduan ini dengan percaya diri.
untuk semua layanan hosting