Setiap file dan direktori di Linux membawa metadata kecil yang menentukan siapa boleh membacanya, menulisnya, atau menjalankannya — inilah permission, deretan huruf yang kita lihat setiap kali mengetik ls -l. Notasinya tampak rumit di awal: gabungan seperti rwxr-xr-x terasa acak padahal strukturnya teratur dan mudah dibaca begitu triknya diketahui. Chapter ini membedah notasi itu untuk tiga kelas akses, membedakan makna r, w, x antara file dan direktori, lalu mengenali kombinasi yang paling sering dijumpai.

Tiga Kelas Akses: Owner, Group, dan Other #

Sembilan huruf permission terbagi menjadi tiga trio untuk tiga kelas: owner (pemilik file), group (group pemilik file), dan other (selain keduanya). Saat sebuah proses mencoba mengakses file, kernel membandingkan UID dan GID proses — angka dari Chapter sebelumnya — terhadap identitas pemilik file: cocok sebagai pemilik berarti kelas owner yang berlaku, cocok sebagai anggota group pemilik berarti kelas group, selain itu kelas other. Setiap trio dibaca terpisah — group tidak mewarisi hak owner, other tidak mewarisi hak siapa pun.

Satu-satunya pengecualian adalah UID 0: root melewati seluruh pemeriksaan permission ini.

Membaca Notasi rwxr-xr-x #

Perintah stat -c '%A' menampilkan permission dalam 10 karakter: satu huruf tipe di depan, lalu tiga trio. Huruf tipe - berarti file biasa, d direktori, dan l symbolic link — tipenya kita kenal dari Chapter File Types dan File Extensions . Skrip kecil berikut memotong output stat menjadi bagian-bagiannya:

bash
mkdir -p latihan
printf 'isi catatan\n' > latihan/catatan.txt
mode=$(stat -c '%A' latihan/catatan.txt)
printf 'lengkap : %s\n' "$mode"
printf 'owner   : %s\n' "$(echo "$mode" | cut -c 2-4)"
printf 'group   : %s\n' "$(echo "$mode" | cut -c 5-7)"
printf 'other   : %s\n' "$(echo "$mode" | cut -c 8-10)"

Output yang Dihasilkan:

text
lengkap : -rw-rw-r--
owner   : rw-
group   : rw-
other   : r--

Mari kita bedah skrip tersebut:

  1. Baris 1-2 membuat fixture: folder latihan dan file catatan.txt di dalamnya.
  2. Baris 3 menyimpan notasi 10 karakter ke variabel mode lewat stat -c '%A'.
  3. Baris 4 mencetak notasi lengkap, -rw-rw-r--, sebagai pembanding.
  4. Baris 5-7 mengiris string dengan cut -c: karakter ke-2 sampai ke-4 adalah trio owner, ke-5 sampai ke-7 trio group, dan ke-8 sampai ke-10 trio other — karakter pertama sengaja dilewati karena milik tipe file.

Hasil irisannya jelas: owner rw-, group rw-, other r--. Tanda - pada posisi mana pun berarti hak itu tidak diberikan, jadi rw- berarti boleh baca dan tulis tetapi tidak boleh mengeksekusi.

Makna r, w, dan x untuk File dan Direktori #

Huruf yang sama berarti berbeda untuk file biasa dan direktori, karena direktori di kernel hanyalah daftar nama entri:

HurufUntuk fileUntuk direktori
rmembaca isi filemelihat daftar nama isi (ls)
wmengubah isi filemenambah atau menghapus entri di dalamnya
xmenjalankan file sebagai programmasuk dan menembus direktori (cd, mengakses isi)

Makna x pada direktori sering mengejutkan: izinnya bukan “menjalankan folder”, melainkan traverse — hak melewati direktori untuk mencapai entri di dalamnya. Tanpa x kita tidak bisa cd masuk maupun mengakses isinya meski tahu namanya; sebaliknya r tanpa x memperbolehkan ls melihat nama-nama isi, tetapi tidak lebih.

Kombinasi yang Sering Dijumpai #

Kita amati permission beberapa objek nyata sekaligus — fixture baru dan dua file sistem:

bash
mkdir -p latihan
printf 'isi catatan\n' > latihan/catatan.txt
ls latihan
stat -c '%A %a %n' latihan latihan/catatan.txt /etc/passwd /etc/shadow

Output yang Dihasilkan:

text
catatan.txt
drwxrwxr-x 775 latihan
-rw-rw-r-- 664 latihan/catatan.txt
-rw-r--r-- 644 /etc/passwd
-rw-r----- 640 /etc/shadow

Baris ls berhasil karena kita memiliki r sekaligus x pada folder — keduanya baru bekerja berpasangan. Angka pada format %a adalah permission yang sama dalam oktal: 775 untuk folder baru dan 664 untuk file baru adalah bawaan umask sistem ini (dibahas di Chapter umask). Dua contoh sisinya menarik: /etc/passwd ber-644 karena boleh dibaca semua user, sedangkan /etc/shadow ber-640 karena hanya root dan group shadow yang berhak.

Empat kombinasi berikut muncul hampir di mana-mana:

ModeNotasiKegunaan tipikal
755rwxr-xr-xdirektori dan program yang boleh dipakai semua user
700rwx------direktori privat seperti ~/.ssh
644rw-r--r--file yang boleh dibaca semua user
600rw-------file rahasia seperti kunci privat

Angka oktal itu aritmetika sederhana: dalam tiap trio r = 4, w = 2, x = 1, lalu dijumlahkan — rwx menjadi 7 dan r-x menjadi 5. Cara menghitungnya beserta perintah pengubah permission dibahas pada Chapter chmod dan chown .