Lewati ke isi

Server & Infrastruktur

Cara Membuat User Baru dan Memberi Akses sudo di Linux

Langkah membuat user baru, memberi akses sudo di Ubuntu, Debian, dan AlmaLinux, memasang SSH key, lalu menutup login root dengan aman.

Terbit 5 menit baca

Jawaban singkat

Buat user dengan adduser (Ubuntu/Debian) atau useradd dan passwd (AlmaLinux), lalu masukkan ke grup sudo atau wheel. Uji dengan sudo whoami, pasang SSH key untuk user itu, baru matikan login root lewat SSH.

Daftar isi
  1. Langkah membuat user dan memberi akses sudo
  2. Langkah 1: Login sebagai root dan buat user
  3. Langkah 2: Pastikan paket sudo terpasang
  4. Langkah 3: Masukkan user ke grup admin
  5. Langkah 4: Uji aksesnya
  6. Langkah 5: Pasang SSH key untuk user baru
  7. Langkah 6: Matikan login root lewat SSH
  8. Bagaimana memberi akses sudo yang lebih terbatas?
  9. Ringkasan perintah per distro
  10. Pertanyaan yang sering diajukan
  11. Checklist singkat

Masih login ke server memakai akun root setiap hari? Banyak VPS baru memang hanya memberi akses root, dan itu wajar di menit pertama. Tetapi untuk pemakaian sehari-hari, lebih aman bekerja dengan user biasa yang punya akses sudo.

Caranya singkat: buat user baru, masukkan ke grup admin (sudo di Ubuntu dan Debian, wheel di AlmaLinux), uji, pasang SSH key, lalu tutup login root. Dengan begitu setiap perintah berbahaya harus diawali sudo dan tercatat di log, dan penyerang tidak bisa langsung menebak nama akun root. Alasan lengkap kenapa akses root perlu dijaga ada di apa itu akses root di VPS.

Langkah membuat user dan memberi akses sudo

Contoh di bawah memakai nama user budi. Ganti dengan nama yang kamu pakai, sebaiknya huruf kecil tanpa spasi.

Langkah 1: Login sebagai root dan buat user

Di Ubuntu dan Debian, pakai adduser. Perintah ini interaktif: membuat folder /home/budi, meminta password, lalu menanyakan data opsional seperti nama lengkap (boleh dikosongkan dengan Enter).

adduser budi

Di AlmaLinux 9, adduser hanya tautan ke useradd, yang tidak menanyakan password. Jadi jalankan dua perintah:

useradd -m budi
passwd budi

Opsi -m memastikan folder home dibuat. Pakai password yang panjang, karena password ini dipakai setiap kali menjalankan sudo.

Langkah 2: Pastikan paket sudo terpasang

Ubuntu dan AlmaLinux sudah membawa sudo. Debian versi minimal kadang belum, terutama bila saat instalasi kamu mengisi password root. Cek dan pasang bila perlu:

which sudo || apt install sudo

Langkah 3: Masukkan user ke grup admin

# Ubuntu dan Debian
usermod -aG sudo budi

# AlmaLinux, Rocky, dan keluarga Red Hat
usermod -aG wheel budi

Perhatikan opsi -aG. Huruf a berarti "tambahkan". Kalau lupa dan hanya menulis -G, user akan dikeluarkan dari grup tambahan lain yang sudah dimilikinya. Grup sudo dan wheel sudah diberi izin penuh di file /etc/sudoers bawaan distro, jadi kamu tidak perlu mengedit file itu.

Langkah 4: Uji aksesnya

Jangan tutup sesi root dulu. Pindah ke user baru dan coba:

su - budi
groups
sudo whoami

groups harus menampilkan sudo atau wheel. Setelah memasukkan password budi, sudo whoami harus menjawab root. Kalau muncul pesan "budi is not in the sudoers file", ulangi langkah 3. Perubahan grup baru berlaku pada sesi login baru, jadi keluar dulu dengan exit lalu su - budi lagi bila perlu.

Langkah 5: Pasang SSH key untuk user baru

Login dengan SSH key jauh lebih aman daripada password, seperti dibahas di SSH key vs password. Dari komputermu sendiri (bukan di server), jalankan:

ssh-copy-id budi@IP_SERVER

Kalau kamu sudah login root dengan key dan ingin memakai key yang sama, salin dari root di server:

mkdir -p /home/budi/.ssh
cp /root/.ssh/authorized_keys /home/budi/.ssh/
chown -R budi:budi /home/budi/.ssh
chmod 700 /home/budi/.ssh
chmod 600 /home/budi/.ssh/authorized_keys

Permission yang terlalu longgar di folder .ssh membuat SSH menolak key tersebut, jadi perintah chmod di atas penting. Uji dari jendela terminal baru: ssh budi@IP_SERVER harus masuk tanpa meminta password server.

Langkah 6: Matikan login root lewat SSH

Setelah yakin user baru bisa login dan menjalankan sudo, buka config SSH:

sudo nano /etc/ssh/sshd_config

Ubah atau tambahkan baris PermitRootLogin no. Beberapa distro juga membaca file tambahan di /etc/ssh/sshd_config.d/, jadi pastikan tidak ada file di sana yang menimpa pengaturan ini. Lalu cek dan muat ulang:

sudo sshd -t
sudo systemctl restart ssh    # Ubuntu dan Debian
sudo systemctl restart sshd   # AlmaLinux

sshd -t tidak mengeluarkan apa pun bila config benar. Tetap biarkan satu sesi lama terbuka sampai kamu berhasil login ulang dari jendela baru. Langkah pengamanan lanjutan ada di cara mengamankan VPS Linux baru.

Bagaimana memberi akses sudo yang lebih terbatas?

Tidak semua orang perlu akses penuh. Misalnya staf yang hanya perlu me-restart Nginx. Buat file khusus dengan visudo, yang memeriksa sintaks sebelum menyimpan:

sudo visudo -f /etc/sudoers.d/staf-web

Isi dengan satu baris:

andi ALL=(root) /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx

User andi kini hanya bisa menjalankan dua perintah itu dengan sudo. Selalu pakai visudo, karena kesalahan ketik di file sudoers bisa membuat sudo tidak bisa dipakai sama sekali. Hindari juga NOPASSWD:ALL untuk akun manusia, sebab siapa pun yang berhasil masuk ke akun itu langsung menjadi root tanpa hambatan.

Ringkasan perintah per distro

TugasUbuntu dan DebianAlmaLinux 9
Membuat useradduser budiuseradd -m budi lalu passwd budi
Grup adminsudowheel
Memberi akses sudousermod -aG sudo budiusermod -aG wheel budi
Mencabut akses sudogpasswd -d budi sudogpasswd -d budi wheel
Menghapus user dan homedeluser --remove-home budiuserdel -r budi
Restart SSHsystemctl restart sshsystemctl restart sshd
Log pemakaian sudo/var/log/auth.log/var/log/secure

Pertanyaan yang sering diajukan

Apakah boleh punya lebih dari satu user dengan akses sudo?

Boleh, dan dianjurkan bila ada beberapa admin. Setiap orang sebaiknya punya akun sendiri supaya log menunjukkan siapa menjalankan perintah apa.

Bagaimana kalau saya terkunci setelah mematikan login root?

Gunakan konsol VNC atau konsol darurat di panel penyedia VPS. Dari sana kamu bisa login langsung tanpa SSH dan memperbaiki sshd_config.

Kenapa sudo meminta password setiap beberapa menit?

Itu perilaku bawaan. Setelah password dimasukkan, sudo mengingatnya sebentar (bawaannya 15 menit per terminal), lalu meminta lagi. Ini sengaja supaya terminal yang ditinggal tidak bisa disalahgunakan lama.

Apa bedanya su dan sudo?

su berpindah menjadi user lain dan memakai password user tujuan, misalnya password root. sudo menjalankan satu perintah sebagai root dengan password milikmu sendiri dan setiap pemakaiannya tercatat.

Checklist singkat

  • User baru dibuat dengan password kuat.
  • User masuk grup sudo atau wheel, dan sudo whoami menjawab root.
  • SSH key terpasang dengan permission 700 dan 600.
  • Login dengan user baru dari jendela terminal baru berhasil.
  • PermitRootLogin no aktif, sshd -t bersih, SSH sudah di-restart.
  • Akses terbatas dibuat lewat visudo -f /etc/sudoers.d/....

Sumber & referensi

Baca juga