Kalkulator chmod & Hak Akses
Angka dan centangnya bergerak bersamaan, dua arah
Ubah antara angka oktal dan hak akses rwx dalam dua arah, lengkap dengan bit setuid, setgid, dan sticky. Menjelaskan arti tiap bit untuk file maupun folder, dan memperingatkan pilihan berbahaya.
Seluruh perhitungan berjalan di browser Anda. Alamat IP, nama interface, dan password yang Anda masukkan tidak pernah dikirim ke server CoreNet.
Dua arah, karena orang datang dari dua arah
Sebagian datang membawa angka — melihat 755 di sebuah panduan dan ingin tahu apa artinya. Sebagian lagi tahu apa yang diinginkan tetapi lupa angkanya. Tool ini bekerja dari kedua arah: mengetik angka menggerakkan kotak centangnya, dan mencentang kotak menulis ulang angkanya.
Angka itu sebenarnya sederhana
Setiap digit adalah jumlah dari tiga nilai:
| Nilai | Arti pada file | Arti pada folder |
|---|---|---|
| 4 | boleh dibaca | boleh melihat daftar isinya |
| 2 | boleh diubah | boleh menambah dan menghapus file |
| 1 | boleh dijalankan | boleh dimasuki |
Digit pertama untuk pemilik, kedua untuk grup, ketiga untuk semua orang lain. Jadi 755 berarti: pemilik boleh segalanya (4+2+1), grup dan orang lain boleh membaca dan masuk (4+1) tetapi tidak mengubah.
Bit x pada folder — sumber "Permission denied" yang paling membingungkan
Pada folder, x tidak berarti "boleh dijalankan" melainkan boleh dilewati. Folder tanpa x tidak dapat dimasuki sama sekali, sekalipun file di dalamnya berhak dibaca siapa pun.
Inilah sebab tersering pesan error yang tidak masuk akal: filenya 644, jelas boleh dibaca, tetapi salah satu folder di jalurnya kehilangan bit x. Yang perlu diperiksa bukan filenya, melainkan setiap folder di sepanjang jalur menuju ke sana.
Angka 777 tidak pernah menjadi jawaban
Ketika sesuatu tidak bisa ditulis dan chmod 777 membuatnya jalan, yang terjadi bukan masalah teratasi melainkan masalah tertutupi. Yang sebenarnya salah hampir selalu kepemilikan, dan yang benar adalah chown:
sudo chown -R www-data:www-data /var/www/situs/writable
sudo chmod -R 775 /var/www/situs/writableDengan 777, siapa pun yang punya akun di mesin itu — termasuk akun yang dibobol lewat situs tetangga di hosting bersama — boleh mengubah isinya.
Nilai yang benar untuk server web
- File: 644
- Folder: 755
- Folder yang perlu ditulis aplikasi: 775, dengan grup yang benar
- File rahasia seperti
.env: 600
Bit khusus, dan yang satu berbahaya
setuid membuat program berjalan sebagai pemiliknya, bukan sebagai orang yang menjalankannya. Pada file milik root, artinya siapa pun yang menjalankannya mendapat kuasa root. Jangan memasangnya pada script buatan sendiri — kebanyakan sistem malah mengabaikannya pada script, justru karena bahayanya.
setgid pada folder membuat file baru mewarisi grup folder. Berguna untuk folder yang dipakai satu tim bersama-sama.
sticky bit pada folder membuat file hanya dapat dihapus pemiliknya, walau foldernya boleh ditulis siapa saja. Inilah yang dipakai /tmp.
Huruf besar S pada hasil
Bila hasil simbolik memuat S atau T besar, artinya bit khususnya menyala tetapi bit x di kolom yang sama mati — sehingga bit khusus itu tidak berpengaruh apa-apa. Hampir selalu tidak disengaja.
Pertanyaan yang sering diajukan
Kenapa upload gambar gagal padahal foldernya 755? Karena 755 berarti hanya PEMILIK yang boleh menulis. Bila pemiliknya bukan pengguna yang menjalankan PHP, tulisnya tetap ditolak. Perbaiki kepemilikannya, jangan naikkan ke 777.
Apa beda chmod dan chown? chmod mengatur apa yang boleh dilakukan; chown mengatur siapa pemiliknya. Sebagian besar masalah hak akses sebenarnya masalah chown.
Apakah ini berlaku di Windows? Tidak. Windows memakai ACL yang jauh berbeda. Ini berlaku untuk Linux, macOS, dan sistem mirip Unix lainnya.