User dan Grup Linux: Siapa Boleh Melakukan Apa di Server

Server Linux itu dipakai ramai-ramai, dan tiap akun punya identitasnya sendiri. Pelajari user dan grup itu sebenarnya apa, beda root dengan akun biasa, cara membuat akun, memasukkan orang ke grup, dan berpindah identitas dengan aman — dijelaskan dari nol.

Diterbitkan 19 September 202610 menit bacaOleh ACY Partner Indonesia
User dan grup Linux — identitas yang menentukan siapa boleh melakukan apa di server
300 × 250Slot Iklan TersediaPasang iklan Anda di sini

Server Linux hampir tidak pernah cuma dipakai satu orang untuk satu pekerjaan. Ada manusia yang menyetelnya, ada program yang menjalankan website, mungkin ada job latar belakang yang mengambil backup tiap jam 3 pagi, plus beberapa rekan tim yang sesekali login buat ngecek. Linux merapikan semua itu lewat satu ide yang kelihatannya sederhana: setiap tindakan di sistem itu milik seseorang, dan “seseorang” itu disebut user. Kumpulkan beberapa user, jadilah sebuah grup. Dari titik itu, seluruh pertanyaan soal “siapa boleh melakukan apa” langsung jatuh rapi ke tempatnya.

Kalau kamu pernah melihat permission denied di server dan bingung kenapa, inilah potongan yang hilang. User dan grup adalah lapisan identitas di Linux — mereka menentukan kamu ini siapa, dan dari situlah ditentukan apa saja yang boleh kamu sentuh. Ayo kita susun gambarannya dari paling dasar.

User itu sebenarnya apa

User di Linux ya cuma sebuah akun — sebuah identitas yang dikenali sistem. Apa pun yang kamu lakukan di mesin itu (membaca berkas, menjalankan program, membuka koneksi jaringan), kamu melakukannya sebagai user tertentu, dan sistem mengecek hak user itu dulu sebelum mengizinkannya.

Ini bagian yang sering luput dari pemula: tidak semua user itu manusia. Linux juga memakai akun user untuk program. Software web server berjalan sebagai sebuah user (sering kali namanya memang www-data atau nginx). Database berjalan sebagai user-nya sendiri. Akun semacam ini disebut system user atau service account, dan dia ada supaya tiap program punya identitas terbatasnya sendiri, bukan semuanya jalan dengan kuasa penuh. Kalau web server-nya jebol diretas, kerusakannya terkurung sebatas apa yang boleh dilakukan user itu.

Tiap user punya beberapa properti penting:

  • Username — nama yang ramah dibaca manusia, seperti jane atau www-data.
  • UID (user ID) — angka yang sebenarnya dipakai kernel secara internal. Namanya untuk manusia, angkanya untuk mesin.
  • Home directory — biasanya /home/username, folder pribadi milik user itu.
  • Login shell — program yang jalan saat dia login (sering /bin/bash). Service account sering sengaja diberi shell “tidak bisa login”, supaya tidak ada yang bisa login sebagai dia.

Kamu bisa lihat kamu ini sedang jadi siapa kapan saja:

whoami        # menampilkan username-mu
id            # menampilkan UID, grup utama, dan semua grup yang kamu ikuti

Keluaran id yang umum kira-kira begini:

uid=1001(jane) gid=1001(jane) groups=1001(jane),27(sudo),998(docker)

Satu baris itu bilang: kamu adalah jane (UID 1001), grup utamamu juga jane, dan kamu ikut tergabung di grup sudo dan docker. Ingat-ingat ini — grup tambahan itulah sumber dari banyak kekuasaanmu.

User istimewa: root

Ada satu user yang berdiri terpisah dari semua yang lain: root, disebut juga superuser. Root punya UID 0 dan boleh melakukan apa pun — membaca berkas mana saja, mematikan proses mana saja, mengubah pengaturan apa saja, bahkan menghapus seluruh sistem kalau dia mau. Tidak ada pengecekan izin untuk root; aturannya memang tidak berlaku buat dia.

Justru karena kuasa sebesar itulah kamu harus memperlakukan root dengan hati-hati. User biasa yang salah ketik perintah umumnya cuma dapat permission denied, dan tidak ada yang rusak. Root yang salah ketik perintah yang sama bisa menghapus seluruh mesin. Maka praktik terbaik zaman sekarang adalah: jangan login sebagai root untuk pekerjaan sehari-hari. Login sebagai user biasa, dan pinjam kuasa root hanya untuk momen spesifik yang memang membutuhkannya.

Jangan hidup sebagai root

Di server yang masih baru, kamu mungkin diberi akun root, dan godaannya besar untuk diam saja di situ karena semuanya “langsung jalan” tanpa error izin. Tahan godaan itu. Bekerja sebagai root seharian berarti satu perintah salah ketik bisa berakibat fatal, dan program apa pun yang kamu jalankan ikut mewarisi kendali penuh atas mesin. Buatlah user biasa untuk dirimu sendiri, beri kemampuan untuk naik level saat dibutuhkan (dibahas di bawah), dan simpan root untuk keadaan darurat sungguhan. Dirimu di masa depan bakal berterima kasih.

Grup itu apa, dan kenapa ada

Grup adalah sekumpulan user yang diberi nama. Konsepnya cuma itu — tapi dia memecahkan masalah yang sangat nyata.

Bayangkan lima developer sama-sama perlu membaca dan menulis berkas sebuah proyek. Tanpa grup, kamu harus memberi akses ke tiap orang untuk tiap berkas satu per satu, lalu memperbarui setiap berkas tiap kali ada yang masuk atau keluar tim. Repot dan rawan salah. Dengan grup, kamu cukup membuat satu grup — misalnya developers — masukkan kelima orang ke dalamnya, lalu beri akses ke berkas proyek untuk grup itu. Datang rekan keenam? Tinggal masukkan ke grup dan dia langsung punya akses. Mau mengeluarkan seseorang? Keluarkan dari grup. Berkasnya tidak perlu diutak-atik sama sekali.

Grup punya dua jenis, dan bedanya sering bikin orang bingung di awal:

  • Grup utama (primary) — tiap user punya tepat satu. Saat user itu membuat berkas baru, berkas tadi secara default dimiliki oleh grup ini. Biasanya berupa grup pribadi dengan nama sama persis dengan username-nya (jane ada di grup jane).
  • Grup tambahan (secondary) — jumlahnya bebas, sifatnya opsional. Ini keanggotaan “kamu juga bagian dari tim ini”. Grup sudo, docker, dan developers pada contoh tadi adalah grup tambahan. Mereka memberi akses ekstra tanpa mengubah identitas utamamu.
   GRUP: developers
   ┌───────────────────────────────┐
   │   jane     john     alex      │
   │    │        │        │        │
   │    └────────┴────────┘        │
   │   ketiganya bisa baca/tulis   │
   │   berkas milik grup ini       │
   └───────────────────────────────┘

Inilah sistem identitas yang sama yang dipakai sistem berkas Linux untuk menentukan siapa pemilik apa. Tiap berkas mencatat satu user pemilik dan satu grup pemilik, dan Linux mengecek keduanya terhadap dirimu saat kamu mencoba membukanya.

Membuat dan mengelola user

Membuat akun adalah hal yang bakal kamu lakukan di hampir setiap server yang kamu siapkan. Perintah di bawah ini adalah perintah standar dan netral vendor yang ada di praktis semua distribusi Linux. Sebagian besar butuh kuasa root, jadi biasanya kamu memberinya awalan sudo (kita jelaskan sudo sebentar lagi).

Membuat user baru, lengkap dengan home directory:

sudo useradd -m -s /bin/bash jane    # -m membuat home dir, -s mengatur login shell
sudo passwd jane                      # atur (atau reset) password-nya

Sebagian distribusi juga punya skrip adduser yang lebih ramah, yang menanyaimu satu per satu secara interaktif lalu menyiapkan home directory untukmu. Keduanya sama-sama menghasilkan jenis akun yang sama.

Menghapus user saat dia sudah tidak perlu akses:

sudo userdel jane            # menghapus akun, menyisakan folder home-nya
sudo userdel -r jane         # menghapus akun BESERTA folder home-nya

Mengunci akun tanpa menghapusnya — berguna saat seseorang sedang pergi atau kamu belum yakin:

sudo usermod -L jane         # kunci (nonaktifkan login)
sudo usermod -U jane         # buka kunci

Daftar asli semua user di sistem tersimpan dalam berkas teks biasa, /etc/passwd. Walau namanya begitu, dia sudah tidak menyimpan password lagi — password di-hash dan disimpan di /etc/shadow, yang hanya bisa dibaca root. Kamu bisa mengintip daftar user-nya kapan saja:

cat /etc/passwd

Tiap baris menjelaskan satu akun: username, sebuah UID, ID grup utama, home directory, dan login shell, dipisahkan tanda titik dua.

Membuat dan mengelola grup

Grup punya sekumpulan perintahnya sendiri yang kecil, mirip perintah user:

sudo groupadd developers           # membuat grup
sudo groupdel developers           # menghapus grup

Tindakan sehari-hari yang paling penting adalah memasukkan user ke sebuah grup. Cara amannya pakai -aGhuruf a itu penting, karena artinya append alias menambahkan. Lupa pakai dia, dan kamu malah mengganti seluruh grup tambahan seseorang alih-alih menambah, yang bisa diam-diam mengunci dia keluar dari banyak hal.

sudo usermod -aG developers jane   # masukkan jane ke "developers" (append — pertahankan grup lainnya)

Kamu bisa memastikan hasilnya dengan id jane, atau melihat daftar anggota sebuah grup dan isi berkas grup secara keseluruhan:

groups jane                # jane tergabung di grup apa saja
getent group developers    # siapa saja anggota grup "developers"

Keanggotaan grup sering butuh login ulang

Ini teka-teki klasik: kamu menambahkan dirimu ke sebuah grup, lalu menjalankan id, dan… grup barunya tidak muncul. Apa perintahnya gagal? Tidak — keanggotaan grup dihitung saat kamu login, jadi sesi-mu yang sekarang belum tahu soal perubahan itu. Logout lalu login lagi (atau buka sesi SSH baru) dan grup barunya muncul. Perubahannya nyata kok; sesi-mu cuma masih melihat foto lama tentang dirimu siapa.

Berpindah user dan meminjam kuasa: su dan sudo

Karena kamu sebaiknya tidak hidup sebagai root, Linux memberimu dua cara untuk sementara mengambil kuasa lebih saat sebuah tugas memang membutuhkannya.

su (“substitute user”) memindahkanmu ke identitas user lain untuk satu sesi penuh. Jalankan su - dan kamu jadi root (setelah memasukkan password root); jalankan su - john dan kamu jadi John. Kamu tetap jadi user itu sampai kamu mengetik exit. Ini perpindahan yang sifatnya semua-atau-tidak.

sudo (“superuser do”) adalah pendekatan modern yang lebih aman, dan yang paling sering kamu pakai. Dia membolehkan user yang berwenang menjalankan satu perintah saja sebagai root, dengan menanyakan password-mu sendiri (bukan password root), lalu langsung mengembalikanmu ke identitas normalmu:

sudo apt update              # jalankan cuma perintah ini sebagai root
sudo systemctl restart nginx # dan yang ini
ls /root                     # kembali jadi dirimu — ini sekarang bakal bilang "permission denied"

Kelebihan sudo dibanding login sebagai root itu nyata dan layak dipahami:

  • Least privilege secara default. Kamu menghabiskan hampir seluruh waktumu sebagai user terbatas, dan baru naik level untuk perintah yang persis membutuhkannya. Jendela untuk berbuat salah jadi sangat sempit.
  • Jejak audit. Tiap perintah sudo tercatat lengkap dengan siapa yang menjalankannya dan kapan. Kalau tiga orang mengelola satu server, kamu bisa tahu persis siapa melakukan apa.
  • Kontrol yang detail. Kamu bisa memberi seseorang izin menjalankan hanya perintah-perintah tertentu lewat sudo, alih-alih menyerahkan kunci seluruh kerajaan berupa password root.

Siapa yang boleh memakai sudo ditentukan oleh keanggotaan di sebuah grup — biasanya bernama sudo (keluarga Debian/Ubuntu) atau wheel (keluarga Red Hat). Memasukkan user ke grup itu persis adalah cara kamu memberi seorang admin baru kuasanya:

sudo usermod -aG sudo jane   # jane kini bisa memakai sudo

Berpikir dulu sebelum tiap sudo

Perlakukan sudo sebagai momen untuk memperlambat, bukan mempercepat. Sepersekian detik antara mengetik perintah sudo dan menekan Enter adalah kesempatan terakhirmu untuk membaca ulang perintah itu. Sebagian besar kecelakaan server yang benar-benar merusak berawal dari sudo di depan perintah yang hampir benar — path yang salah, spasi yang nyasar, wildcard yang salah tempat. Kebiasaan melirik ulang barisnya sebelum dieksekusi adalah salah satu skill paling murah sekaligus paling berharga yang bakal kamu bangun sebagai pengelola server.

Bagaimana user, grup, dan akses saling terkait

Mundur sejenak dan seluruh sistemnya menyatu jadi satu gambar. Linux mengikat semuanya lewat identitas:

  1. Tiap berkas dan folder punya pemilik — satu user dan satu grup.
  2. Tiap program yang berjalan jalan sebagai user tertentu, mewarisi hak user itu.
  3. Saat kamu mencoba melakukan sesuatu, Linux mengecek identitasmu (user-mu, plus semua grup-mu) terhadap apa yang diizinkan oleh sasarannya.

Jadi “boleh nggak aku mengedit berkas ini?” sebenarnya berarti: apakah user-ku memilikinya, atau aku ada di grupnya, dan apakah tingkat kepemilikan itu memberi izin menulis? User dan grup adalah siapa-nya; permission adalah apa yang boleh dilakukannya. Mereka dua paruh dari kunci yang sama. Begitu kamu nyaman dengan sisi identitas di sini, langkah berikutnya yang wajar adalah sisi akses — aturan baca, tulis, dan eksekusi yang sebenarnya menempel di tiap berkas.

Kamu juga bakal sadar betapa banyak hal ini bergantung pada rasa nyaman di prompt. Kalau perintah-perintah di atas terasa asing, ada baiknya memantapkan dulu command line, karena tiap urusan kelola user dan grup terjadi di sana.

Penutup

Ini seluruh idenya dalam satu tempat:

  • User adalah sebuah akun — identitas yang dikenali Linux. Sebagian user itu manusia; banyak juga yang berupa program (service account) yang jalan dengan hak terbatas.
  • root (UID 0) adalah superuser yang maha-kuasa. Jangan dipakai untuk pekerjaan harian — risikonya terlalu tinggi.
  • Grup adalah sekumpulan user yang diberi nama, supaya kamu bisa memberi akses ke satu tim sekaligus, bukan satu per satu.
  • Tiap user punya satu grup utama (menentukan grup pada berkas yang dia buat) dan grup tambahan berapa pun (keanggotaan tim ekstra, seperti sudo atau developers).
  • Kelola akun dengan useradd, userdel, usermod, passwd; kelola grup dengan groupadd, groupdel, dan usermod -aG (selalu append).
  • Pakai sudo untuk meminjam kuasa root satu perintah pada satu waktu — lebih aman ketimbang hidup sebagai root, dengan jejak audit bawaan dan least privilege secara default.

User dan grup menjawab pertanyaan kamu ini siapa. Pertanyaan persis berikutnya — apa yang boleh dilakukan identitas itu terhadap tiap berkas — ditentukan oleh permission berkas Linux, aturan baca/tulis/eksekusi yang duduk tepat di atas lapisan identitas ini. Di situlah gambarannya menjadi utuh.

Tag:linuxusergruppermissionserverpemula
728 × 90Slot Iklan TersediaPasang iklan Anda di sini

Artikel Terkait

Lihat Semua Artikel

Artikel yang Mungkin Kamu Suka

SSL dan enkripsi at rest — data terlindungi saat berjalan dan saat tersimpan di disk
Server / Keamanan Server

SSL dan Enkripsi at Rest: Melindungi Data Saat Berjalan dan Saat Tersimpan

Enkripsi melindungi data di dua tempat: saat data lewat di jaringan (in transit) dan saat data nganggur di disk (at rest). Pahami bedanya, kenapa kamu butuh keduanya, bagaimana TLS, enkripsi disk, dan pengelolaan kunci sebenarnya saling melengkapi, plus kesalahan praktis yang sering bikin sia-sia.

9 Nov 202612 menit baca
Mengamankan port dan service — menutup pintu di server yang tidak kamu pakai
Server / Keamanan Server

Mengamankan Port dan Service: Menutup Pintu yang Tidak Kamu Pakai

Setiap port yang terbuka di server adalah satu pintu yang bisa dicoba orang lain. Pahami port dan service itu sebenarnya apa, kenapa service yang terekspos jadi risiko terbesarmu, dan kebiasaan sederhana menutup semua yang tidak kamu butuhkan — dijelaskan dari nol.

8 Nov 202610 menit baca
Prinsip least privilege — memberi hanya akses minimum yang dibutuhkan tiap user dan proses
Server / Keamanan Server

Prinsip Least Privilege: Beri Setiap Hal Hanya Akses yang Benar-Benar Dibutuhkan

Least privilege adalah aturan diam-diam di balik hampir semua setup keamanan yang solid: setiap user, proses, dan kunci hanya dapat akses minimum untuk menjalankan tugasnya, tidak lebih.

7 Nov 202612 menit baca
Fail2ban dan dasar intrusi — mengawasi log dan mem-banned otomatis pelaku yang menggedor berulang kali
Server / Keamanan Server

Fail2ban dan Dasar Intrusi: Mem-banned Otomatis Bot yang Terus Menggedor Server-mu

Penyerang tidak berhenti setelah sekali salah tebak — mereka terus menggedor, ribuan kali sehari. Pahami seperti apa sebenarnya percobaan intrusi, apa yang dikerjakan fail2ban, bagaimana ia mengawasi log dan mem-banned pelaku otomatis, dan cara menyetelnya dengan masuk akal tanpa mengunci dirimu.

6 Nov 202612 menit baca
Menjaga software tetap update — menutup lubang keamanan yang sudah diketahui sebelum penyerang memakainya
Server / Keamanan Server

Menjaga Software Tetap Update: Kebiasaan Membosankan yang Mencegah Sebagian Besar Pembobolan Server

Kebanyakan server tidak dibobol lewat serangan baru yang canggih — tapi lewat lubang lama yang sudah diketahui, yang sebenarnya cukup ditutup dengan update. Pelajari kenapa update itu penting, apa saja yang harus di-update, cara melakukannya dengan aman tanpa merusak apa pun, dan cara.

5 Nov 20269 menit baca
Konfigurasi firewall — aturan default-deny yang hanya membuka port yang kamu butuhkan
Server / Keamanan Server

Konfigurasi Firewall: Menyusun Aturan Default-Deny Tanpa Mengunci Diri Sendiri

Tahu apa itu firewall dan benar-benar mengonfigurasinya dengan rapi adalah dua keterampilan berbeda. Pelajari cara menyusun aturan default-deny, mengurutkan aturan dengan benar, membuka akses sendiri lebih dulu, menangani IPv6 dan security group cloud, lalu mengujinya sebelum dipakai — panduan.

4 Nov 202614 menit baca