1. Latar Belakang
Pada hari kedua pembelajaran Sistem Administrasi Linux di Perwira Learning Center, saya mendalami tiga jenis permission dasar yaitu Read (baca), Write (tulis), dan Execute (eksekusi). Pemahaman mendetail tentang perbedaan fungsi ketiga permission ini sangat penting karena merupakan fondasi dalam mengelola keamanan sistem Linux. Sebagai calon sofware engineer, saya perlu memahami bagaimana Linux mengontrol akses ke file dan direktori, serta bagaimana menerapkan prinsip least privilege dalam pengaturan hak akses.
2. Alat dan Bahan
2.1 Perangkat Lunak
- Ubuntu Server 24.04 LTS
- Terminal Linux
2.2 Perangkat Keras
- Laptop dengan spesifikasi minimum 4GB RAM
- Virtual Machine via VirtualBox (Untuk linux yang pakai VM)
- Storage 20GB untuk sistem
3. Pembahasan
3.1 Arti Permission Read (r), Write (w), Execute (x)
Permission di Linux menggunakan sistem simbolis yang terdiri dari tiga karakter dasar:
- Read (r) - Nilai 4
- Arti: Hak untuk membaca atau melihat konten
- Simbol:
rdalam outputls -l - Dampak tanpa permission: Tidak bisa melihat isi file atau daftar direktori
- Write (w) - Nilai 2
- Arti: Hak untuk memodifikasi/menghapus
- Simbol:
wdalam outputls -l - Dampak tanpa permission: Tidak bisa mengubah konten
- Execute (x) - Nilai 1
- Arti: Hak untuk mengeksekusi/mengakses
- Simbol:
xdalam outputls -l - Dampak tanpa permission: Tidak bisa menjalankan file atau masuk direktori
Kombinasi Umum:
| Kombinasi | Biner | Nilai | Makna |
|---|---|---|---|
| r-- | 100 | 4 | Hanya baca |
| rw- | 110 | 6 | Baca dan tulis |
| r-x | 101 | 5 | Baca dan eksekusi |
| rwx | 111 | 7 | Akses penuh |
3.2 Asal-usul Nilai Biner Permission Linux (4–2–1)
Nilai Read (4), Write (2), dan Execute (1) bukan ditentukan secara acak, tetapi berasal dari sistem bilangan biner yang digunakan komputer dan sudah ditetapkan sejak desain awal Unix (cikal bakal Linux).
Linux menggunakan 3 bit (3 posisi biner) untuk merepresentasikan permission:
Setiap bit hanya memiliki dua kondisi:
- 1 = aktif / diizinkan
- 0 = tidak aktif / ditolak
3.3 Posisi Bit dan Nilai (Bobot)
Dalam sistem biner, setiap posisi memiliki nilai (bobot) tertentu.
Untuk permission Linux, bobotnya disepakati oleh pencipta Unix di Bell Labs (AT&T) pada akhir 1960-an – awal 1970-an. sebagai berikut:
Artinya:
- Bit Read berada di posisi bernilai 4
- Bit Write berada di posisi bernilai 2
- Bit Execute berada di posisi bernilai 1
Inilah alasan mengapa angka permission selalu menggunakan pola 4–2–1.
3.4 Penjelasan Satu per Satu
1. Read (r) = 100 (biner) = 4
Artinya:
Karena hanya bit Read yang aktif, maka nilai binernya 100, dan jika dikonversi ke desimal hasilnya 4
2. Write (w) = 010 (biner) = 2
Artinya:
Karena hanya bit Write yang aktif, maka nilai binernya 010, yang setara dengan 2 dalam desimal.
Inilah asal nilai 2 pada Write, bukan 100
3. Execute (x) = 001 (biner) = 1
Artinya:
Karena hanya bit Execute yang aktif, maka nilai binernya 001, yang bernilai 1
3.5 Mengapa Permission Bisa Dijumlahkan?
Karena setiap permission memiliki bobot yang berbeda, Linux cukup menjumlahkan nilainya untuk mendapatkan kombinasi permission.
Contoh:
- r-- = 100 = 4
- rw- = 110 = 4 + 2 = 6
- r-x = 101 = 4 + 1 = 5
- rwx = 111 = 4 + 2 + 1 = 7
Inilah yang membuat perintah chmod sangat sederhana dan konsisten
3.6 Perbedaan Fungsi r/w/x pada File vs Direktori
Perbedaan kritis yang harus dipahami adalah permission bekerja berbeda antara file dan direktori:
Untuk File (Regular File)
-rwxr-xr-- 1 ibra students 1024 Jan 20 10:30 script.sh
- r (read): Bisa membaca isi file dengan
cat,less,more - w (write): Bisa mengubah isi file dengan editor, menimpa file
- x (execute): Bisa menjalankan file sebagai program/script
Untuk Direktori (Directory)
drwxr-xr-x 3 ibra students 4096 Jan 20 10:30 project/
- r (read): Bisa melihat daftar file dengan
ls(namun perlu +x untuk melihat detail) - w (write): Bisa membuat/menghapus/rename file dalam direktori
- x (execute): Bisa masuk ke direktori dengan
cd, mengakses file di dalamnya
Analogi:
- File seperti buku: r=baca isi, w=ubah isi, x=jalankan perintah dalam buku
- Direktori seperti lemari: r=lihat daftar isi, w=tambah/hapus barang, x=buka pintu lemari
Tabel Perbandingan:
| Permission | Nilai | Biner | Fungsi pada File | Fungsi pada Direktori | Tingkat Risiko |
|---|---|---|---|---|---|
| Read (r) | 4 | 100 | Bisa membaca isi file | Melihat daftar isi direktori (ls) | Sedang (bisa bocorkan data) |
| Write (w) | 2 | 010 | Mengedit, menimpa, menghapus file | Membuat, menghapus, rename file | Tinggi (bisa merusak sistem) |
| Execute (x) | 1 | 001 | Menjalankan file/program | Masuk dan mengakses direktori (cd) | Rendah (tidak bisa lihat/ubah) |
3.7 Contoh Nyata dan Simulasi
Kasus 1: Folder Tidak Bisa Dibuka Tanpa Execute (x)
# Membuat direktori tanpa permission execute mkdir folder_rahasia chmod 666 folder_rahasia/ # rw-rw-rw- (tanpa x) # Mencoba mengakses cd folder_rahasia # Output: bash: cd: folder_rahasia: Permission denied ls folder_rahasia/ # Output: ls: cannot access 'folder_rahasia/': Permission denied
Diagnosa: Direktori tanpa x tidak bisa diakses sama sekali, meskipun punya permission r.
Kasus 2: File Script Tidak Bisa Dijalankan Tanpa Execute (x)
# Membuat script sederhana echo 'echo "Hello dari Ibra"' > hello.sh chmod 644 hello.sh # rw-r--r-- (tanpa x) # Mencoba menjalankan ./hello.sh # Output: bash: ./hello.sh: Permission denied # Memberikan execute permission chmod +x hello.sh # Menambah x untuk semua ./hello.sh # Output: Hello dari Ibra
Kasus 3: File Tidak Bisa Dihapus dari Direktori
# Membuat direktori dan file mkdir shared_folder touch shared_folder/file1.txt # Memberikan permission pada direktori (tanpa w untuk group/others) chmod 755 shared_folder/ # Sebagai user lain mencoba menghapus rm shared_folder/file1.txt # Output: rm: cannot remove 'shared_folder/file1.txt': Permission denied
3.8 Praktik Mengecek Permission Menggunakan ls -l
Teknik Analisis Permission:
# Format dasar ls -l [file/direktori] # Contoh lengkap ls -la # Tampilkan semua termasuk hidden # Filter berdasarkan permission ls -l | grep "^d" # Hanya direktori ls -l | grep "^-\|^l" # File dan symbolic link # Mencari file dengan permission tertentu find . -type f -perm 777 # File dengan permission 777 find . -type d -perm 755 # Direktori dengan permission 755 # Mencari file yang executable find . -type f -executable
Praktik Lapangan:
# 1. Analisis permission home directory ls -ld ~ # Output: drwx------ 10 ibra ibra 4096 Jan 20 11:00 /home/ibra # 2. Cek permission file konfigurasi ls -l /etc/hostname # Output: -rw-r--r-- 1 root root 15 Jan 20 09:00 /etc/hostname # 3. Verifikasi permission script ls -l hello.sh # Output sebelum: -rw-r--r-- 1 ibra students 32 Jan 20 11:30 hello.sh # Output setelah: -rwxr-xr-x 1 ibra students 32 Jan 20 11:30 hello.sh # 4. Permission khusus (SUID/SGID) ls -l /usr/bin/passwd # Output: -rwsr-xr-x 1 root root 59976 Nov 24 2024 /usr/bin/passwd # Karakter 's' pada user execute = SUID aktif
3.9 Tips Praktis Pengaturan Permission
Permission Umum yang Aman:
| Jenis File / Direktori | Permission | Notasi | Fungsi | Alasan Keamanan |
|---|---|---|---|---|
| File data user | 644 | rw-r--r-- | User bisa baca & tulis, lainnya hanya baca | Aman untuk data biasa tanpa risiko modifikasi |
| Script executable | 755 | rwxr-xr-x | User penuh, lainnya hanya bisa menjalankan | Mencegah edit script oleh user lain |
| Direktori user | 700 | rwx------ | Hanya owner yang bisa akses | Melindungi data pribadi |
| Direktori shared | 775 | rwxrwxr-x | Owner & group bisa kelola | Kolaborasi aman antar user |
| File konfigurasi sensitif | 600 | rw------- | Hanya owner yang bisa baca & edit | Mencegah kebocoran credential |
Perintah Cepat:
# Private file (hanya owner) chmod 600 rahasia.txt # Executable untuk semua chmod a+x program.sh # Direktori untuk web server chmod 755 /var/www/html/ # Shared dalam satu group chmod 770 /tim/shared/ chmod g+s /tim/shared/ # SGID agar file baru ikut group
3.10 Kesimpulan
- Permission Linux menggunakan 3 bit biner
- Urutan bit adalah Read – Write – Execute
- Setiap bit memiliki bobot tetap: 4 – 2 – 1
- Read = 100, Write = 010, Execute = 001
- Angka permission berasal dari konversi biner ke desimal
Sistem ini dipilih karena efisien, mudah dihitung, dan cepat diproses oleh komputer, serta tetap konsisten sejak era Unix hingga Linux modern.
4. Daftar Pustaka
- Tembolok.ID. (2024). Memahami Hak Akses File Pada Linux dan Cara Merubah nya. https://www.tembolok.id
- Universitas PGRI Semarang. (n.d.). User, Group, dan Permission di Linux Ubuntu. https://sip.upgris.ac.id
- Cloud Aja. (2024). File Permission Pada Linux: Panduan Lengkap dari 000 Hingga 777. https://www.cloudaja.id
- Ant Media Host. (2022). Mengenal Hak File Permission Pada Linux. https://www.antmediahost.com
- Teltics. (2024). Panduan Administrasi Sistem Linux. https://teltics.com

0 Komentar