Cyber RoadmapINDONESIA

Fondasi · Fase 1

User Management di Linux: useradd, passwd, sudoers, dan /etc/shadow

Siapa boleh apa di server Linux? Pelajari jenis akun, cara membuat dan mengunci akun dengan useradd dan passwd, beda /etc/passwd dan /etc/shadow, cara membaca hash password, serta memberi hak admin dengan aman lewat sudo dan sudoers.

Bayangkan sebuah kantor. Setiap karyawan punya kartu akses sendiri, tapi tidak semua kartu bisa membuka semua pintu. Resepsionis tidak bisa masuk ruang server, dan staf keuangan tidak bisa masuk gudang. Kalau semua orang memakai satu kartu yang sama dan bisa membuka semua pintu, satu kartu yang hilang berarti seluruh kantor terancam.

Linux bekerja dengan cara serupa. Setiap orang dan setiap layanan punya akun pengguna sendiri, dengan hak akses yang berbeda-beda. Mengatur akun-akun ini disebut user management, dan ini salah satu fondasi terpenting dalam mengamankan server. Di artikel ini kamu akan belajar membuat akun, mengatur password, memberi hak admin dengan aman, dan memahami di mana Linux menyimpan password.

Tiga jenis akun di Linux

Tidak semua akun di Linux dipakai manusia. Kalau kamu membuka file /etc/passwd, kamu akan melihat puluhan akun, padahal yang login mungkin hanya kamu.

Jenis akun pengguna di Linux
Jenis akunContohUIDFungsinya
Rootroot0Admin dengan kuasa penuh atas seluruh sistem
Akun sistem / layananwww-data, mysql, sshdBiasanya di bawah 1000Menjalankan program tertentu, tidak dipakai untuk login
Akun pengguna biasabudi, sariBiasanya mulai 1000Dipakai manusia untuk bekerja sehari-hari

Kenapa layanan seperti web server punya akun sendiri? Supaya kalau web server dibobol, penyerang hanya mendapat hak akun www-data yang terbatas, bukan hak root. Inilah prinsip least privilege yang sudah kamu kenal di artikel sebelumnya.

Membuat dan mengelola akun: useradd dan kawan-kawan

sudo useradd -m -s /bin/bash budi   # buat akun budi, beserta folder rumah dan shell bash
sudo passwd budi                    # atur password untuk budi
id budi                             # lihat UID, GID, dan grup budi
sudo usermod -aG sudo budi          # masukkan budi ke grup sudo (Ubuntu/Debian)
sudo passwd -l budi                 # kunci akun budi
sudo passwd -u budi                 # buka kembali kunci akun budi
sudo userdel -r budi                # hapus akun budi beserta folder rumahnya

Beberapa hal yang perlu diperhatikan:

  • Opsi -m membuat folder /home/budi. Tanpa opsi ini, akun terbuat tapi tidak punya folder rumah.
  • Di Ubuntu dan Debian ada juga perintah adduser yang lebih ramah. Perintah ini menanyakan password dan data lain secara interaktif.
  • Pada usermod, jangan lupa huruf a di -aG. Tanpa a (append), grup lama pengguna akan diganti, bukan ditambah.
  • Di keluarga Red Hat seperti Fedora, Rocky, dan AlmaLinux, grup admin biasanya bernama wheel, bukan sudo.

Di mana Linux menyimpan password?

Informasi akun disimpan di dua file teks. Pemisahan ini disengaja demi keamanan.

Perbandingan /etc/passwd yang boleh dibaca semua pengguna dan /etc/shadow yang berisi hash password dan hanya bisa dibaca root
Perbandingan /etc/passwd yang boleh dibaca semua pengguna dan /etc/shadow yang berisi hash password dan hanya bisa dibaca root

Dulu, hash password disimpan langsung di /etc/passwd. Karena file itu harus bisa dibaca semua pengguna, siapa pun bisa menyalin hash password orang lain lalu mencoba menebaknya. Solusinya, hash dipindahkan ke /etc/shadow yang hanya bisa dibaca root. Di /etc/passwd, kolom password cukup diisi huruf x.

Coba lihat satu baris /etc/passwd:

budi:x:1001:1001:Budi Santoso:/home/budi:/bin/bash

Artinya: nama pengguna budi, password disimpan di shadow (x), UID 1001, GID 1001, nama lengkap Budi Santoso, folder rumah /home/budi, dan shell /bin/bash. Akun layanan biasanya memakai shell /usr/sbin/nologin, artinya akun itu tidak bisa dipakai untuk login.

Membaca /etc/shadow

Sekarang lihat isi /etc/shadow dengan sudo cat /etc/shadow. Setiap barisnya terlihat rumit, tapi polanya sederhana.

Arti setiap kolom pada satu baris /etc/shadow: nama pengguna, hash password, tanggal terakhir diganti, dan aturan umur password
Arti setiap kolom pada satu baris /etc/shadow: nama pengguna, hash password, tanggal terakhir diganti, dan aturan umur password

Bagian paling penting adalah kolom kedua, yaitu hash password. Hash adalah hasil pengolahan password dengan rumus satu arah. Dari password mudah dihitung hash-nya, tetapi dari hash sangat sulit dikembalikan ke password. Awalan hash menunjukkan algoritma yang dipakai:

Awalan hash di /etc/shadow
AwalanAlgoritmaKeterangan
$y$yescryptBawaan di Ubuntu dan Debian versi baru. Sengaja dibuat lambat agar sulit ditebak massal.
$6$SHA-512Masih banyak dipakai, termasuk di keluarga Red Hat.
$1$MD5Sudah usang. Kalau masih ada, password itu perlu segera diganti.
! atau *Tidak ada hash yang berlakuAkun terkunci atau memang tidak bisa login dengan password.

Kolom-kolom sesudahnya mengatur umur password: kapan terakhir diganti, berapa hari sekali wajib diganti, dan kapan peringatan muncul. Kamu bisa melihatnya dalam bentuk yang lebih mudah dibaca dengan sudo chage -l budi.

Hak admin dengan aman: sudo dan sudoers

Login langsung sebagai root itu berbahaya. Satu salah ketik bisa merusak sistem, dan tidak tercatat siapa yang melakukannya kalau beberapa orang memakai akun root yang sama. Cara yang lebih aman adalah login sebagai pengguna biasa, lalu memakai sudo hanya saat butuh hak admin.

Siapa yang boleh memakai sudo dan untuk perintah apa diatur di file /etc/sudoers dan folder /etc/sudoers.d/.

Arti aturan sudoers budi ALL=(ALL:ALL) ALL, beserta contoh aturan yang lebih aman untuk satu perintah saja
Arti aturan sudoers budi ALL=(ALL:ALL) ALL, beserta contoh aturan yang lebih aman untuk satu perintah saja
sudo -l          # lihat perintah apa saja yang boleh kamu jalankan dengan sudo
sudo visudo      # ubah aturan sudoers dengan aman

Ada dua kebiasaan penting. Pertama, selalu pakai visudo, karena perintah ini memeriksa kesalahan penulisan sebelum menyimpan. Kedua, berikan hak seperlunya. Kalau seseorang hanya perlu me-restart web server, beri izin untuk perintah itu saja, bukan semua perintah.

Daftar periksa keamanan akun

Hal yang perlu dicek pada sebuah server Linux
PemeriksaanPerintahKondisi yang aman
Akun dengan UID 0 selain rootawk -F: '$3==0' /etc/passwdHanya root yang muncul
Akun tanpa passwordsudo awk -F: '$2==""' /etc/shadowTidak ada hasil
Anggota grup admingetent group sudoHanya orang yang memang perlu
Hak sudo milikmusudo -lSeperlunya, tanpa NOPASSWD yang tidak perlu
Izin file shadowls -l /etc/shadowTidak bisa dibaca pengguna biasa
Riwayat loginlast dan lastlogTidak ada login dari akun atau waktu yang janggal

Kenapa ini penting untuk keamanan siber

Banyak serangan ke server dimulai dari akun, bukan dari celah software yang rumit. Contohnya akun bekas karyawan yang lupa dinonaktifkan, password lemah yang tertebak, atau aturan sudo yang terlalu longgar. Setelah masuk, penyerang biasanya mencoba menaikkan hak akses (privilege escalation) dari pengguna biasa menjadi root, dan sudoers yang salah atur adalah salah satu jalan pintasnya. Bagi tim keamanan, memeriksa akun dan hak akses adalah langkah wajib dalam setiap audit dan penanganan insiden.

Ringkasan

  • Linux punya tiga jenis akun: root (UID 0), akun layanan, dan akun pengguna biasa.
  • useradd, passwd, usermod, dan userdel dipakai untuk membuat, mengatur password, mengubah, dan menghapus akun.
  • /etc/passwd berisi data akun dan boleh dibaca semua pengguna. /etc/shadow berisi hash password dan hanya bisa dibaca root.
  • Pakai sudo daripada login sebagai root, ubah aturannya lewat visudo, dan berikan hak seperlunya.
  • Kunci akun yang tidak dipakai, hindari NOPASSWD yang tidak perlu, dan periksa akun secara berkala.

Tonton dan baca juga

Materi berikutnya membahas package manager: cara memasang, memperbarui, dan menghapus software di Linux dengan apt dan yum, serta kenapa rajin update itu penting untuk keamanan. Buka di roadmap untuk melanjutkan.

Bermanfaat? Dukung konten berikutnya

Semua materi di sini gratis. Dukunganmu dipakai untuk membeli alat lab untuk praktik, eksplorasi, dan riset konten keamanan siber berikutnya.

Traktir di Trakteer ↗
Sampul course Cyber Security Fundamental

Pelajari lebih dalam

Cyber Security Fundamental di WPU Course

Lihat course ↗

Materi terkait di roadmap

Artikel lainnya

Artikel ini bersifat edukatif. Praktikkan teknik ofensif hanya di lingkungan yang kamu miliki izinnya. Baca Disclaimer.