Lompat ke konten utama

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.

Tiga angka, atau empat bila memakai bit khusus.
Siapa Baca (r) Tulis (w) Jalan (x)
Pemilik
Grup
Lainnya

Bit khusus

Jarang diperlukan, dan salah satunya berbahaya. Penjelasannya muncul di hasil begitu dicentang.
Arti bit x berbeda pada keduanya.
Hasil

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:

NilaiArti pada fileArti pada folder
4boleh dibacaboleh melihat daftar isinya
2boleh diubahboleh menambah dan menghapus file
1boleh dijalankanboleh 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/writable

Dengan 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.

Lanjut ke