Memahami Read, Write, dan Execute: Cara Linux Mengontrol Akses File & Folder – Perwira Learning Center

 
 

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:

  1. Read (r) - Nilai 4
    • Arti: Hak untuk membaca atau melihat konten
    • Simbol: r dalam output ls -l
    • Dampak tanpa permission: Tidak bisa melihat isi file atau daftar direktori
  2. Write (w) - Nilai 2 
    • Arti: Hak untuk memodifikasi/menghapus
    • Simbol: w dalam output ls -l
    • Dampak tanpa permission: Tidak bisa mengubah konten
  3. Execute (x) - Nilai 1 
    • Arti: Hak untuk mengeksekusi/mengakses
    • Simbol: x dalam output ls -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:

Read Write Execute

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:

Read Write Execute 4 2 1

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:

Read = 1 (aktif) Write = 0 Execute = 0

Karena hanya bit Read yang aktif, maka nilai binernya 100, dan jika dikonversi ke desimal hasilnya 4

2. Write (w) = 010 (biner) = 2

Artinya:

Read = 0 Write = 1 (aktif) Execute = 0

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:

Read = 0 Write = 0 Execute = 1 (aktif)

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)

bash
-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)

bash
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)

bash
# 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)

bash
# 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

bash
# 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:

bash
# 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:

bash
# 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:

bash
# 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

  1. Tembolok.ID. (2024). Memahami Hak Akses File Pada Linux dan Cara Merubah nya. https://www.tembolok.id
  2. Universitas PGRI Semarang. (n.d.). User, Group, dan Permission di Linux Ubuntu. https://sip.upgris.ac.id
  3. Cloud Aja. (2024). File Permission Pada Linux: Panduan Lengkap dari 000 Hingga 777. https://www.cloudaja.id
  4. Ant Media Host. (2022). Mengenal Hak File Permission Pada Linux. https://www.antmediahost.com
  5. Teltics. (2024). Panduan Administrasi Sistem Linux. https://teltics.com


Posting Komentar

0 Komentar