Apa Fungsi chmod?
chmod (change mode) adalah perintah Linux dan Unix untuk mengatur siapa yang boleh membaca, menulis, dan menjalankan sebuah file atau folder. Setiap file punya tiga set permission: satu untuk pemilik (owner), satu untuk grup (group), dan satu untuk semua orang lainnya (others). Kalkulator di atas mengubah sembilan kotak centang itu menjadi angka atau huruf yang dibutuhkan chmod, dan sebaliknya.
Anda bisa memberikan mode ke chmod dengan dua cara: sebagai angka oktal, seperti chmod 755 script.sh, atau dalam bentuk simbolik, seperti chmod u+x script.sh. Hanya pemilik file atau root yang bisa mengubah permission-nya.

Cara Kerja Permission File di Linux
Setiap permission punya nilai: read = 4, write = 2, dan execute = 1. Jumlahkan untuk setiap kelas sehingga didapat satu digit dari 0 sampai 7, lalu tulis ketiga digit secara berurutan: pemilik, grup, lainnya. Jadi rwx adalah 4+2+1 = 7, r-x adalah 4+0+1 = 5, dan rwxr-xr-x adalah 755.
Jalankan ls -l dan Anda akan melihat hal yang sama dalam bentuk huruf, misalnya -rwxr-xr-x. Karakter pertama adalah tipe file (- untuk file biasa, d untuk direktori, l untuk symbolic link), diikuti tiga kelompok rwx untuk pemilik, grup, dan lainnya. Tanda hubung berarti permission tersebut tidak aktif.
Huruf-huruf ini artinya sedikit berbeda pada file dan pada folder:
File: membuka dan membaca isinya. Folder: menampilkan daftar nama di dalamnya dengan ls.
File: mengubah isinya. Folder: membuat, menghapus, dan mengganti nama file di dalamnya (ini juga butuh execute pada folder). Bisa tidaknya sebuah file dihapus bergantung pada permission write folder, bukan file-nya.
File: menjalankannya sebagai program atau skrip. Folder: masuk dengan cd dan membuka file di dalamnya berdasarkan nama. Dengan read tanpa execute, Anda bisa melihat daftar nama di folder tetapi tidak bisa membuka apa pun di dalamnya.
u adalah pemilik file, g grupnya, dan o semua orang lainnya. Linux hanya memakai kelas pertama yang cocok dengan Anda: jika Anda pemiliknya, permission grup dan lainnya tidak berlaku bagi Anda, meskipun izinnya lebih longgar.
Advertisement
Permission chmod yang Umum dan Kapan Memakainya
Mode-mode ini mencakup hampir semua kasus nyata. Sebagian besar juga tersedia sebagai tombol preset di kalkulator.
Bawaan untuk sebagian besar file: halaman web, gambar, dan file konfigurasi yang tidak rahasia. Pemilik bisa mengedit, yang lain hanya bisa membaca.
Bawaan untuk direktori dan untuk program atau skrip yang boleh dijalankan semua orang. Hanya pemilik yang bisa mengubahnya.
Hanya pemilik yang bisa membaca atau menulis. Gunakan untuk private key SSH, file .env, token API, dan apa pun yang berisi kata sandi.
Hanya pemilik yang bisa membuka atau melihat isi folder. Standar untuk ~/.ssh dan folder skrip pribadi.
Pemilik mengedit, satu grup (misalnya grup web server) membaca, dan tidak ada orang lain yang bisa melihat file tersebut.
Pemilik punya akses penuh, grup bisa membuka dan membaca folder, dan pengguna lain tidak bisa masuk.
Pemilik dan grup sama-sama bisa mengedit. Umum di server tim tempat beberapa pengguna berbagi satu grup.
Pemilik dan grup bisa membuat dan menghapus file di dalamnya; yang lain hanya bisa melihat.
Hanya pemilik yang bisa membaca dan tidak ada yang bisa menulis. AWS meminta Anda menjalankan chmod 400 pada key pair .pem yang diunduh sebelum memakainya dengan SSH.
Setiap pengguna dan proses di mesin bisa membaca, mengubah, dan menjalankannya. Hampir tidak pernah menjadi solusi yang tepat, seperti dijelaskan di bagian berikutnya.
chmod 755 vs 644 vs 777
755 dan 644 hanya berbeda pada bit execute: 755 membolehkan semua orang menjalankan file atau membuka folder, 644 tidak. Itulah sebabnya aturan umumnya adalah folder 755, file 644: folder butuh execute agar orang bisa masuk, sedangkan sebagian besar file tidak boleh dijalankan.
777 memberi akses write ke setiap akun di mesin, termasuk user web server. Jika ada situs atau skrip di server yang dibobol, penyerang bisa mengubah atau mengganti file Anda, menyisipkan malware ke halaman Anda, atau menanam backdoor. Saat sesuatu gagal dengan "Permission denied", solusi yang sebenarnya biasanya adalah pemilik (chown) atau grup yang benar, bukan 777.
Permission yang direkomendasikan untuk kasus paling umum:
File website (HTML, PHP, gambar):
644. Folder website:755. Inilah yang direkomendasikan WordPress dan sebagian besar control panel hosting.wp-config.php dan file lain yang berisi kata sandi database: WordPress menyarankan
440atau400agar pengguna lain di server tidak bisa membacanya.600atau640juga menjaganya tetap privat sekaligus membolehkan pemilik mengeditnya.Folder upload atau cache yang harus bisa ditulis web server: beri grup web server akses write (
775) atau jadikan user web server sebagai pemilik, alih-alih memakai777.Folder ~/.ssh:
700. Private key (id_ed25519,id_rsa):600atau400. authorized_keys:600. Public key (.pub):644.Shell script yang ingin Anda jalankan:
755, atau700jika hanya Anda yang boleh menjalankannya.chmod +x script.shmenambahkan execute tanpa menyentuh bit lainnya.
Advertisement
Mengatasi "Permissions 0644 are too open" pada Kunci SSH
SSH mengabaikan private key yang bisa dibaca pengguna lain dan menampilkan WARNING: UNPROTECTED PRIVATE KEY FILE! diikuti Permissions 0644 for '/home/you/.ssh/id_rsa' are too open. Jalankan chmod 600 ~/.ssh/id_rsa (atau chmod 400) lalu sambungkan lagi. Di sisi server, dengan pengaturan bawaan StrictModes yes, daemon SSH juga mengabaikan authorized_keys jika file itu, ~/.ssh, atau folder home Anda bisa ditulis oleh grup atau pengguna lain.
Jika permission sudah benar tetapi koneksi tetap gagal, pastikan port 22 terbuka di server.
Permission Khusus: Setuid, Setgid, dan Sticky Bit
Digit keempat di depan menambahkan tiga bit khusus: 4 = setuid, 2 = setgid, dan 1 = sticky. Bit ini dijumlahkan seperti yang lain, jadi 6755 berarti setuid plus setgid. Di ls -l, bit ini menggantikan huruf execute: s di posisi pemilik atau grup, t di posisi lainnya.
Satu keanehan Linux: GNU chmod 755 dir (dan chmod 0755 dir) membiarkan bit setuid atau setgid yang sudah ada pada direktori tetap terpasang. Untuk menghapusnya, nyatakan secara eksplisit dengan chmod g-s dir (atau chmod a-s dir untuk kedua bit), atau gunakan lima digit: chmod 00755 dir.
Program dengan setuid berjalan dengan hak akses pemilik-nya, bukan hak akses Anda. /usr/bin/passwd bernilai 4755 (-rwsr-xr-x) di sebagian besar sistem Linux, sehingga pengguna biasa bisa memperbarui file kata sandi milik root. Linux mengabaikan setuid pada shell script dan pada direktori.
Pada program, program berjalan dengan grup file tersebut. Pada folder, bit ini lebih berguna: file baru yang dibuat di dalamnya mendapat grup folder, dan subfolder baru mewarisi setgid. 2775 adalah mode klasik untuk folder tim bersama.
Pada folder, hanya pemilik file, pemilik folder, atau root yang bisa menghapus atau mengganti nama file di dalamnya, meskipun semua orang bisa menulis di sana. Itulah sebabnya /tmp bernilai 1777 (drwxrwxrwt). Linux mengabaikan sticky bit pada file.
Huruf kapital S atau T di ls -l berarti bit khusus terpasang tetapi bit execute di posisi yang sama tidak. Misalnya, 4644 tampil sebagai rwSr--r-- dan 1666 sebagai rw-rw-rwT.
Advertisement
Mode Simbolik: u, g, o, a dengan +, - dan =
Mode simbolik mengubah permission relatif terhadap yang sudah ada, sesuatu yang tidak bisa dilakukan angka oktal biasa. Mode ini punya tiga bagian: siapa (u pemilik, g grup, o lainnya, a semua), operator (+ tambah, - hapus, = atur persis) dan permission (r, w, x, plus s dan t). Pisahkan beberapa perubahan dengan koma tanpa spasi.
chmod +x file tanpa huruf siapa berarti ketiga kelas, dikurangi apa pun yang diblokir umask Anda. Dengan umask umum 022, hasilnya sama dengan a+x.
chmod u+x deploy.sh: membolehkan pemilik menjalankan skrip tanpa mengubah hal lain.chmod go-w report.txt: menghapus permission write dari grup dan lainnya.chmod o= secrets.txt: mencabut semua permission dari lainnya.chmod a+r index.html: semua orang bisa membaca file.chmod u=rwx,g=rx,o=rx app: cara simbolik untuk menulis 755. Kalkulator menampilkan bentuk ini untuk mode apa pun.chmod -R u=rwX,go=rX public_html: huruf kapital X menambahkan execute hanya pada folder dan pada file yang sudah executable, sehingga folder menjadi 755 dan file biasa 644.
umask: Permission Bawaan untuk File Baru
umask menentukan permission yang didapat file dan folder baru. Sebagian besar program membuat file dengan 666 (rw-rw-rw-) dan folder dengan 777, lalu setiap bit yang terpasang di umask dimatikan. Dengan umask umum 022, file baru menjadi 644 dan folder baru 755.
Ini adalah mask bitwise, bukan pengurangan. Dengan umask 027, file mendapat 640; mengurangkan 027 dari 666 digit per digit bahkan tidak menghasilkan mode yang valid. Buka tab Umask di kalkulator untuk melihat hasilnya untuk nilai apa pun.
022: file 644, folder 755. Bawaan yang umum.002: file 664, folder 775. Membolehkan grup Anda mengedit apa yang Anda buat; umum di sistem yang setiap penggunanya punya grup pribadi.027: file 640, folder 750. Tidak ada akses untuk pengguna lain, pilihan yang baik di server.077: file 600, folder 700. Sepenuhnya privat.Jalankan
umaskuntuk melihat nilai Anda,umask -Suntuk melihatnya dalam bentuk huruf, danumask 027untuk mengubahnya di shell saat ini. Tambahkan perintah tersebut ke~/.bashrcatau~/.profileagar tetap berlaku.
Advertisement
Cara Memakai Chmod Calculator
Centang Baca, Tulis, dan Eksekusi untuk pemilik, grup, dan lainnya, atau klik preset seperti 644 atau 755. Setiap baris langsung menampilkan digitnya.
Ketik angka oktal seperti 750 atau 2775, atau tempel string simbolik seperti rwxr-x---. String ls -l lengkap seperti drwxr-sr-x juga bisa, dan tipe filenya ditampilkan.
Centang Setuid, Setgid, atau Sticky untuk mendapatkan mode 4 digit. Peringatan muncul saat sebuah mode membolehkan siapa pun menulis tanpa sticky bit.
Masukkan nama file atau folder, centang Rekursif untuk seluruh pohon direktori, lalu salin perintah chmod numerik atau simbolik. Alamat halaman menyimpan modenya (misalnya ?mode=750), sehingga Anda bisa menyimpannya sebagai bookmark atau membagikannya.
Contoh Perintah chmod
Jalankan di terminal Linux atau macOS. Tambahkan sudo di depan jika file dimiliki pengguna lain atau root.
chmod +x deploy.sh # tambahkan execute
chmod 755 deploy.sh # atau atur mode lengkap
./deploy.shfind /var/www/html -type d -exec chmod 755 {} +
find /var/www/html -type f -exec chmod 644 {} +chmod -R 755 folder # file juga menjadi executable
chmod -R u=rwX,go=rX folder # folder 755, file 644chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/id_ed25519.pubstat -c '%a %n' file # Linux: 644 file
stat -f '%Lp %N' file # macOS: 644 file
stat -f '%Mp%Lp %N' file # macOS dengan bit khusus: 0644 filechgrp developers /srv/project
chmod 2775 /srv/project # file baru mendapat grup developersAlat Developer Lainnya
Alat gratis lain untuk developer dan admin sistem, semuanya berjalan di browser Anda. Butuh ID unik untuk file atau record? Coba generator UUID.
Rentang CIDR, netmask, dan host yang bisa dipakai, dengan grid bit visual.
Periksa apakah port 22, 80, 443, atau port lain terbuka.
Kata sandi acak yang kuat dengan analisis entropi.
Unix timestamp ke tanggal dan sebaliknya, di zona waktu mana pun.