Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Administrasi Keamanan

Pengguna Linux, Grup, dan Izin: Satu Alur Kerja Onboarding Praktis

The Monday-Morning Access Request

Senin pagi, seorang rekan kerja baru bergabung dengan proyek Anda dan membutuhkan akses ke ruang kerja pengembangan bersama di Ubuntu VPS Anda hari ini. Mereka harus dapat masuk, membuka direktori tim, dan melakukan pekerjaan normal tanpa menunggu orang lain untuk setiap tugas kecil. Mereka tidak boleh mendapatkan akses root. Mereka juga harus menjauh dari area release-secret yang dibatasi.

Administrator managing a secure server environment

Di situlah pengguna Linux, grup, dan izin berhenti terasa seperti tiga topik buku teks terpisah dan mulai bertindak seperti satu sistem praktis. Mungkin server berada di VPS AlexHost, mungkin berada di tempat lain, tetapi pertanyaan akses sama di mana-mana: bagaimana Anda memberikan akses yang berguna tanpa memberikan kontrol penuh?

Panduan ini mengikuti satu permintaan onboarding dari awal hingga akhir, sehingga setiap perintah memiliki pekerjaan dan tempat yang jelas dalam cerita. Jika istilah seperti pengguna, grup, dan izin pernah terasa kabur sendiri-sendiri, ini adalah cara termudah untuk membuat mereka saling terhubung.

Workflow:
user account β†’ group membership β†’ ownership alignment β†’ permissions β†’ verification

Satu Model Mental Sebelum Perintah Apa Pun

Sebelum perintah apa pun, simpan satu analogi di kepala Anda: bayangkan server seperti gedung kantor. Pengguna adalah lencana bernama untuk satu orang. Grup adalah departemen tempat mereka bekerja. Izin adalah aturan pintu di ruangan dan lemari. Akses Linux menjadi jauh lebih mudah setelah Anda membacanya dengan cara itu daripada menghafal perintah yang terisolasi.

Tiga pertanyaan inti sangat sederhana:

  • Pengguna menjawab, “Siapa ini?”
  • Grup menjawab, “Tim bersama mana yang mereka ikuti?”
  • Izin menjawab, “Apa yang bisa mereka lakukan di sini?”

Itu juga inti dari privilege minimal: berikan seseorang akses yang cukup untuk melakukan pekerjaan, dan tidak lebih. Izin saja tidak pernah menyelesaikan seluruh masalah, karena aturan yang tepat pada identitas yang salah atau tim yang salah masih menghasilkan hasil yang salah.

Person looking up definitions in an illustrated reference book

Logika yang sama muncul di setiap file dan direktori. Linux pertama-tama memeriksa apakah Anda adalah pemilik, apakah Anda cocok dengan grup path, atau apakah Anda termasuk dalam others β€” artinya semua orang lain di mesin. Hanya kemudian aturan yang relevan diterapkan. Itulah mengapa path yang sama dapat berperilaku berbeda untuk pengguna yang berbeda.

Tabel terjemahan ringkas di bawah ini cukup untuk sisa artikel ini:

Istilah LinuxArti dalam bahasa biasaPertanyaan yang dijawabnya
πŸ‘€ userAkun bernama untuk satu orangSiapa ini?
πŸ‘₯ groupKeanggotaan tim bersamaTim mana yang mereka ikuti?
πŸ”‘ ownerPengguna yang terlampir pada file atau direktoriSiapa path ini ditugaskan pertama kali?
πŸ“ group (pada path)Tim yang terlampir pada path tersebutTim mana yang mendapat aturan bersama?
🌐 othersSemua orang lain di mesinApa yang bisa dilakukan semua orang lain?

πŸ“ Catatan: Perintah di bawah menggunakan contoh yang ramah Ubuntu, tetapi model mental itu sendiri berlaku di seluruh Linux secara umum.

Dari sana, langkah pertama menjadi jelas: sebelum Maya dapat berbagi apa pun dengan tim, sistem perlu tahu dia ada sebagai orang yang terpisah.

Langkah 1: Buat Pengguna di Sistem

Akun pengguna Linux bukan hanya label dalam daftar. Ini memberi Maya identitas login, direktori home, dan konteks kerja terpisah dari semua orang lain di server. Pemisahan itulah yang membuat akuntabilitas mungkin terjadi. Jika sesuatu berubah, Anda dapat mengetahui siapa yang mengubahnya. Jika akses perlu tetap sempit, Anda dapat membatasinya ke satu akun nyata alih-alih login misteri bersama.

Di Ubuntu, cara yang ramah pengguna untuk membuat akun tersebut adalah:

sudo adduser maya

Ubuntu akan memandu Anda melalui pengaturan normal dan biasanya membuat /home/maya pada saat yang sama. Anda mungkin juga melihat useradd dalam skrip atau dokumentasi tingkat lebih rendah. Pada sistem Debian/Ubuntu, adduser biasanya merupakan pilihan yang lebih ramah untuk akun pengguna normal.

Creating Maya's user account with adduser

Inilah juga mengapa akun bersama adalah kebiasaan yang sangat buruk. Jika beberapa orang semua masuk sebagai pengguna yang sama β€” atau lebih buruk lagi, “hanya gunakan root” β€” Anda kehilangan ketertelusuran segera, dan setiap keputusan izin yang lebih lambat menjadi lebih ceroboh. Akun pengguna menjawab siapa Maya. Ini belum menjawab ruang proyek bersama apa yang dapat dia gunakan.

Langkah 2: Masukkan Mereka ke Tim yang Tepat

Sekarang Maya ada, tetapi dia masih tidak memiliki hubungan dengan ruang kerja bersama. Di sinilah grup menjadi berguna. Grup utama mengikuti akun secara default. Grup tambahan adalah tim ekstra yang Anda lampirkan ke pengguna sehingga akses bersama dapat diskalakan dengan bersih di seluruh beberapa orang dan beberapa proyek.

Jika grup proyek Anda belum ada, buatlah terlebih dahulu. Kemudian tambahkan Maya ke grup tersebut alih-alih mengganti keanggotaan tambahan yang sudah ada.

⚠️ Peringatan: usermod -G devteam maya tanpa -a dapat mengganti grup tambahan Maya yang sudah ada. Bendera -a berarti “tambahkan,” dan itulah bagian yang membuat ini aman.

Gunakan perintah berikut untuk membuat grup dan memverifikasi Maya adalah bagian darinya:

sudo groupadd devteam
sudo usermod -aG devteam maya
id maya

Jika devteam sudah ada, lewati baris groupadd. Dalam output id, Anda ingin melihat devteam terdaftar di antara grup Maya:

Adding Maya to devteam and verifying her group membership

Output tersebut membuktikan keanggotaan tim ada di sana. Ini belum membuktikan Maya dapat menggunakan ruang kerja. Berada di devteam masih tidak melakukan apa pun jika direktori itu sendiri dimiliki dan dikelompokkan dengan cara yang mengabaikan tim tersebut.

Langkah 3: Selaraskan Kepemilikan dengan Workspace

Ini adalah tautan yang hilang di balik banyak frustrasi pemula. Pertanyaan berikutnya adalah tentang workspace itu sendiri: siapa yang memilikinya, dan grup mana yang terlampir padanya? Sampai itu selaras, keanggotaan tim Maya yang benar tidak memiliki tempat yang berguna untuk diterapkan.

Untuk panduan ini, gunakan satu jalur bersama dan satu jalur terbatas. Area tim bersama akan menjadi /srv/devworkspace. Area pribadi akan menjadi /srv/release-secrets, dengan satu file contoh di dalamnya. Buat kedua jalur terlebih dahulu:

sudo mkdir -p /srv/devworkspace /srv/release-secrets
sudo touch /srv/release-secrets/deploy-key.txt

Creating the shared workspace and restricted directory

Selanjutnya, periksa seperti apa jalur-jalur tersebut saat ini:

ls -ld /srv/devworkspace /srv/release-secrets
ls -l /srv/release-secrets/deploy-key.txt

Inspecting the initial ownership and permissions of both paths

-d penting di sini karena memberitahu ls untuk mendeskripsikan direktori itu sendiri alih-alih mencantumkan isinya. Dalam daftar panjang, mulai dengan tiga bagian. Lihat terlebih dahulu string izin di sebelah kiri. Kemudian periksa pemilik dan grup. Jika kedua jalur masih menunjukkan root root, keanggotaan devteam baru Maya tidak memiliki apa pun yang berguna untuk terhubung.

Jika Anda hanya perlu mengubah grup, chgrp devteam /srv/devworkspace akan melakukan itu. Di sini, chown owner:group lebih jelas karena menetapkan target lengkap dalam satu baris. Workspace bersama harus milik root:devteam, sementara jalur terbatas harus tetap root:root:

sudo chown root:devteam /srv/devworkspace
sudo chown root:root /srv/release-secrets /srv/release-secrets/deploy-key.txt

Setelah penyelarasan kepemilikan itu, bagian penting dari daftar harus berbunyi seperti ini:

drwxr-xr-x  root devteam  /srv/devworkspace
drwxr-xr-x  root root     /srv/release-secrets
-rw-r--r--  root root     /srv/release-secrets/deploy-key.txt

permissions  owner  group

πŸ’‘ Tip: Simpan rahasia terbatas di luar workspace yang dapat ditulis grup. Itu membuat pengaturan mudah untuk dipikirkan dan menghindari kasus tepi penulisan direktori yang berantakan yang tidak membantu dalam alur onboarding pemula.

Pada titik ini, kepemilikan memberitahu Linux area siapa setiap jalur terlampir. Langkah terakhir adalah menentukan apa yang sebenarnya dapat dilakukan pemilik itu, grup itu, dan semua orang lain di sana.

Langkah 4: Atur Izin yang Sesuai dengan Pekerjaan

Dengan kepemilikan selaras, Anda sekarang dapat menetapkan aturan sebenarnya untuk setiap path: siapa yang boleh membacanya, mengubahnya, atau memasukinya. Pikirkan pekerjaan terlebih dahulu, angka kedua. Anda tidak mencoba menghafal seluruh alam semesta izin di sini; Anda mengekspresikan satu aturan praktis untuk satu ruang kerja bersama dan satu area rahasia terbatas.

Person presenting a rules document with a warning symbol

Matriks kecil di bawah ini adalah satu-satunya yang dibutuhkan sebagian besar pemula:

IzinPada filePada direktori
rBaca isi fileDaftar nama di dalamnya
wUbah isi fileBuat, ganti nama, atau hapus entri di dalamnya
xJalankan file sebagai program atau skripMasuki/traversal direktori

Baris direktori adalah jebakan. Pada direktori, x tidak berarti “jalankan folder.” Ini berarti Anda dapat memasuki path itu atau melintasinya dalam perjalanan ke sesuatu yang lebih dalam. Itulah mengapa file dapat terlihat dapat dibaca secara teori dan masih gagal dalam praktik jika Anda tidak dapat melintasi path direktori yang mengarah ke sana.

Sekarang terapkan aturan yang sesuai dengan cerita onboarding ini. Ruang kerja tim harus dapat digunakan oleh root dan devteam, tetapi ditutup untuk semua orang lain. Direktori rahasia harus tetap root-only, dan file rahasia di dalamnya harus tetap root-readable only:

sudo chmod 770 /srv/devworkspace
sudo chmod 700 /srv/release-secrets
sudo chmod 600 /srv/release-secrets/deploy-key.txt

Angka-angka itu lebih mudah daripada yang terlihat pertama kali ketika Anda menyimpannya terlampir pada pekerjaan. 770 pada /srv/devworkspace berarti root mendapat akses penuh, dan devteam mendapat akses bersama yang sama. Semua orang lain tidak mendapat apa-apa di sana. 700 pada /srv/release-secrets berarti hanya root yang dapat memasuki direktori itu. 600 pada deploy-key.txt berarti hanya root yang dapat membaca atau mengubah file. Bagian penting bukan aritmetikanya. Ini adalah bahwa setiap mode mencerminkan keputusan yang sudah Anda buat tentang path ini.

drwxrwx---  root devteam  /srv/devworkspace
drwx------  root root     /srv/release-secrets
-rw-------  root root     /srv/release-secrets/deploy-key.txt

⚠️ Peringatan: chmod 777 bukan perbaikan nyata. Biasanya berarti kepemilikan atau desain path salah, jadi seseorang menyemprotkan izin terbuka lebar di atas kesalahan itu alih-alih memperbaiki desain akses sebenarnya.

Satu catatan lanjutan, disengaja tetap singkat: di direktori bersama yang lebih sibuk, admin kadang-kadang menggunakan perilaku setgid direktori sehingga file yang baru dibuat secara otomatis mewarisi grup tim. Itu berguna nanti, tetapi itu milik artikel tindak lanjut. Untuk alur kerja ini, pengguna biasa, grup, kepemilikan, dan aturan rwx dasar sudah cukup.

Langkah 5: Verifikasi Akses dan Batasan

Konfigurasi hanya setengah dari pekerjaan. Onboarding Linux yang baik juga menguji batasan. Kondisi kesuksesan bukan hanya “Maya dapat melakukan sesuatu.” Ini adalah “Maya dapat melakukan pekerjaan yang dimaksudkan dan masih tidak dapat memasuki jalur yang dibatasi.”

Mulai konteks login segar untuk Maya, kemudian uji satu tindakan yang diizinkan dan satu tindakan yang ditolak:

su - maya
cd /srv/devworkspace
touch first-day-check.txt
ls -l /srv/devworkspace

Maya entering the shared workspace and creating a test file

Kemudian uji batasannya:

cd /srv/release-secrets
cat /srv/release-secrets/deploy-key.txt

Tes ruang kerja harus berhasil. Maya harus dapat memasuki /srv/devworkspace dan membuat file sederhana di sana. Tes batasan harus gagal dengan kesalahan izin, dan kegagalan itu adalah sinyal kesuksesan. Privilege minimal seharusnya memiliki tepi.

πŸ’‘ Tip: Jika Maya masih tidak dapat menggunakan /srv/devworkspace meskipun perintahnya terlihat benar, buka sesi login segar dan uji lagi. Keanggotaan grup tambahan baru tidak selalu muncul secara konsisten di dalam shell yang lebih lama.

Ini adalah cara tenang untuk memverifikasi onboarding: konfirmasi jalur yang bahagia, kemudian konfirmasi batasnya. Setelah Anda melakukan keduanya, alur kerja berhenti menjadi teori dan menjadi sesuatu yang dapat Anda percayai di server berikutnya juga.

Kesalahan Umum yang Merusak Model

Sebagian besar kebingungan izin Linux bukan karena Linux yang misterius. Biasanya berasal dari serangkaian kecil kesalahan kategori yang sama. Kadang pengguna berada di tim yang salah. Kadang kepemilikan path salah. Kadang masalah sebenarnya adalah asumsi buruk tentang apa arti x, atau jalan pintas izin yang digunakan sebagai pengganti desain yang tepat.

Facts and myths shown side by side with check and rejection symbols

Tabel di bawah ini adalah cara praktis untuk men-debug kabut itu:

MitosKoreksi
“Maya ada di devteam, jadi akses seharusnya sudah berfungsi.”Keanggotaan grup hanya penting jika pemilik/grup path dan izin cocok dengan model tim itu.
“usermod -G sudah cukup dengan sendirinya.”Tanpa -a, itu dapat mengganti grup tambahan yang ada daripada menambahkan satu lagi.
“Keanggotaan grup baru berlaku secara instan di mana-mana.”Sesi yang ada mungkin memerlukan login baru sebelum perubahan muncul secara konsisten.
“Direktori x sama dengan file x.”Pada direktori, x berarti masuk/traversal path, bukan menjalankan program.
“chmod 777 memperbaiki masalah izin.”Itu menyembunyikan masalah kepemilikan atau desain path yang sebenarnya dengan memberikan akses luas kepada semua orang.
“Jika ini mengganggu, cukup berikan hak admin.”sudo atau root melewati model daripada memperbaikinya, yang mengalahkan prinsip least privilege.

Sebagian besar masalah izin berasal dari melewati lapisan dan mencapai chmod terlalu cepat. Setelah Anda tahu apakah masalahnya adalah identitas, keanggotaan tim, kepemilikan, atau aturan path, perbaikannya menjadi jauh lebih jelas.

Garis Besar Praktis

Kontrol akses Linux menjadi jauh lebih mudah ketika Anda bekerja secara berurutan daripada memperlakukan pengguna, grup, dan izin seperti trivia terpisah. Dalam contoh ini, Maya mendapatkan persis apa yang dia butuhkan. Dia memiliki login nyata dan akses tim ke ruang kerja bersama. Dia tidak memiliki akses ke jalur release-secret.

Person standing beside a completed practical checklist

Gunakan daftar periksa ini pada VPS Ubuntu atau server Linux kecil yang dihosting:

  1. Buat identitas.
  2. Tetapkan tim bersama.
  3. Selaraskan kepemilikan jalur dan grup.
  4. Tetapkan aturan izin untuk pekerjaan itu.
  5. Uji akses dan batas-batas.

Itulah daftar periksa yang dapat digunakan kembali: identitas β†’ tim β†’ aturan, dengan penyelarasan jalur duduk di tengah sehingga aturan benar-benar memiliki tempat yang tepat untuk diterapkan. Jika Anda ingin mendalami lebih lanjut, tindak lanjut alami termasuk akses SSH dan sudo. Pola direktori bersama dan manajemen pengguna/grup Linux yang lebih luas dibangun atas dasar yang sama. Logika inti tidak berubah; Anda hanya menerapkannya pada situasi yang lebih spesifik.