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:
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:
lengkap : -rw-rw-r--
owner : rw-
group : rw-
other : r--Mari kita bedah skrip tersebut:
- Baris 1-2 membuat fixture: folder
latihandan filecatatan.txtdi dalamnya. - Baris 3 menyimpan notasi 10 karakter ke variabel
modelewatstat -c '%A'. - Baris 4 mencetak notasi lengkap,
-rw-rw-r--, sebagai pembanding. - 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:
| Huruf | Untuk file | Untuk direktori |
|---|---|---|
r | membaca isi file | melihat daftar nama isi (ls) |
w | mengubah isi file | menambah atau menghapus entri di dalamnya |
x | menjalankan file sebagai program | masuk 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:
mkdir -p latihan
printf 'isi catatan\n' > latihan/catatan.txt
ls latihan
stat -c '%A %a %n' latihan latihan/catatan.txt /etc/passwd /etc/shadowOutput yang Dihasilkan:
catatan.txt
drwxrwxr-x 775 latihan
-rw-rw-r-- 664 latihan/catatan.txt
-rw-r--r-- 644 /etc/passwd
-rw-r----- 640 /etc/shadowBaris 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:
| Mode | Notasi | Kegunaan tipikal |
|---|---|---|
755 | rwxr-xr-x | direktori dan program yang boleh dipakai semua user |
700 | rwx------ | direktori privat seperti ~/.ssh |
644 | rw-r--r-- | file yang boleh dibaca semua user |
600 | rw------- | 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
.