Chmod Kalkulator

Kalkulator izin file Linux/Unix yang interaktif.

Tidak ada data yang meninggalkan perangkat Anda
Baca (4)
Tulis (2)
Eksekusi (1)
Pemilik
Grup
Lainnya
Numerik
Simbolik ---------
chmod 000 filename

Izin umum

Cara menggunakan

  1. Centang kotak untuk menetapkan izin baca, tulis, dan eksekusi untuk Pemilik, Grup, dan Lainnya.
  2. Atau ketik nilai numerik 3 digit langsung (mis. 755).
  3. Notasi simbolik dan perintah chmod diperbarui secara real-time.
  4. Klik Salin perintah untuk menyalin perintah chmod lengkap.

Referensi izin

Nomor Izin Simbol
0Tanpa izin---
1Eksekusi saja--x
2Tulis saja-w-
3Tulis + eksekusi-wx
4Baca sajar--
5Baca + eksekusir-x
6Baca + tulisrw-
7Baca + tulis + eksekusirwx

Pertanyaan umum

Apa arti chmod 755?

755 berarti pemilik dapat membaca, menulis, dan mengeksekusi (7), sedangkan grup dan lainnya hanya dapat membaca dan mengeksekusi tanpa menulis (5). Ini adalah izin yang paling umum untuk folder dan skrip.

Apa perbedaan antara 644 dan 755?

644 (rw-r--r--) memungkinkan pemilik membaca/menulis dan semua orang hanya membaca · tipikal untuk file. 755 (rwxr-xr-x) menambahkan izin eksekusi · tipikal untuk folder dan skrip.

Apakah ini juga berfungsi untuk folder?

Ya. Izin numerik berfungsi dengan cara yang sama. Untuk folder, "eksekusi" berarti dapat masuk ke folder dan mengakses isinya.

Model izin Unix dalam 9 bit

Setiap file dan direktori pada sistem Unix-like membawa sebuah «mode», bilangan bulat kecil yang mencatat siapa yang dapat melakukan apa. Model ini pada dasarnya tidak berubah sejak Sixth Edition Unix (Mei 1975), dengan entri manual chmod paling awal muncul di Version 1 Unix (November 1971). Model ini mengkodekan sembilan bit izin yang disusun sebagai tiga kelompok tiga berisi read / write / execute, satu kelompok untuk pemilik file, grupnya, dan semua orang lain:

Owner    Group    Others
r w x    r w x    r w x
4 2 1    4 2 1    4 2 1

Setiap kelompok tiga bit persis satu digit oktal karena tiga bit mengkodekan 2³ = 8 nilai berbeda (0-7). Bobot 4, 2, 1 adalah 2², 2¹, 2⁰. Menambahkan kombinasi apa pun dari read (4) + write (2) + execute (1) menghasilkan delapan digit per-kelas yang mungkin tanpa tabrakan; itulah seluruh pemetaan oktal-ke-simbolik. chmod 755 oleh karena itu berarti rwx (4+2+1=7) untuk pemilik, r-x (4+1=5) untuk grup, dan r-x untuk semua orang lain.

String 10 karakter yang Anda lihat di ls -l adalah data yang sama ditambah satu kolom ekstra di depan untuk tipe file: - untuk file biasa, d untuk direktori, l untuk symlink, c untuk perangkat karakter, b untuk perangkat blok, p untuk named pipe, s untuk socket. Sembilan karakter sisanya adalah triple izin.

Notasi simbolis: chmod u+x file

Mode oktal menimpa semua sembilan bit sekaligus. Mode simbolis bersifat non-destruktif, hanya membalik bit yang Anda sebutkan. Grammarnya adalah siapa + op + izin:

Contoh berguna:

Mode numerik bersifat eksplisit dan idempoten (chmod 755 selalu berarti sembilan bit yang sama). Mode simbolis bersifat bedah (chmod g+w hanya membalik satu bit). Skrip produksi cenderung menyukai mode numerik untuk kejelasan dalam log audit; operator yang mengetik di shell cenderung menyukai simbolis untuk penyesuaian inkremental.

Mode umum dan kegunaannya

ModeSimbolisPenggunaan tipikal
755rwxr-xr-xExecutable publik dan direktori standar, /usr/bin/*, docroot web, working tree Git
644rw-r--r--File reguler standar, konfigurasi, kode sumber, dokumen
700rwx------Direktori privat, ~/.ssh, dokumen pribadi yang tidak boleh dilihat orang lain
600rw-------File privat, ~/.ssh/id_rsa, ~/.gnupg/*, file password
444r--r--r--Hanya baca untuk semua orang, data referensi tetap, indeks registri Cargo
750rwxr-x---Pemilik penuh, grup baca/lintasi, yang lain tidak ada, direktori layanan bersama grup
777rwxrwxrwxHampir selalu salah. Lihat di bawah.

Mengapa chmod 777 hampir selalu salah

Menetapkan file ke 777 membuatnya world-readable, world-writable, dan world-executable. Setiap pengguna di mesin (termasuk akun layanan tanpa hak istimewa dan proses apa pun yang pernah dikompromikan) dapat membaca konten file, mengubahnya, dan menjalankannya. Saran tutorial standar «cukup chmod 777 sampai berhasil» adalah antipattern keamanan yang telah bertanggung jawab atas banyak pelanggaran nyata: file konfigurasi world-writable yang dirusak, direktori web world-writable yang menjadi vektor pengrusakan, file log world-writable yang memungkinkan pemalsuan log, direktori world-executable yang memungkinkan eksekusi kode sembarang.

Jika kesalahan izin menghalangi Anda, perbaikan yang tepat hampir selalu adalah mengubah pemilik file (dengan chown) atau grupnya (dengan chgrp) sehingga pengguna yang membutuhkan akses benar-benar memiliki atau ikut memiliki file, bukan menghapus kontrol akses untuk semua orang.

Bit khusus: setuid, setgid, sticky

Digit oktal keempat yang disisipkan di depan mode membuka tiga bit khusus, semuanya peninggalan desain Unix asli:

Tampilan ls -l menukar karakter execute menjadi s, S, t atau T ketika bit-bit ini ditetapkan (huruf kapital berarti bit ditetapkan tetapi bit execute yang mendasarinya tidak).

umask: kebalikan dari chmod

chmod menetapkan izin pada file yang sudah ada. umask menentukan izin default pada file yang Anda buat, dengan bertindak sebagai topeng subtraktif. Aritmatikanya: file reguler baru akan menjadi 666 (rw-rw-rw-), direktori baru 777, dikurangi apa pun yang ditetapkan dalam umask. Nilai umum:

Mengetik umask tanpa argumen menampilkan nilai saat ini. Menetapkannya di inisialisasi shell Anda (~/.bashrc, ~/.zshrc) atau di /etc/login.defs berlaku untuk seluruh sesi.

File vs direktori, makna berbeda dari x

Bit r/w/x yang sama memiliki arti yang sedikit berbeda pada direktori dibandingkan pada file:

chmod rekursif dan pola find

chmod -R 755 /var/www menerapkan mode yang sama pada setiap file dan direktori dalam pohon, yang hampir selalu salah karena file dan direktori membutuhkan mode yang berbeda (mis., 644 untuk file, 755 untuk direktori). Idiom yang benar menggunakan find:

find /var/www -type f -exec chmod 644 {} +
find /var/www -type d -exec chmod 755 {} +

Atau, secara setara, menggunakan chmod GNU dengan huruf kapital X: chmod -R u=rwX,go=rX /var/www hanya memberikan execute pada direktori dan file yang sudah memiliki execute di suatu tempat, persis hasil yang biasanya Anda inginkan.

Symlink, ACL, dan bagaimana Linux memperluas model ini

Dua penyempurnaan yang layak diketahui:

Pertanyaan lainnya

Mengapa kunci SSH saya ditolak dengan «permissions are too open»?

Karena klien OpenSSH menolak menggunakan kunci privat yang dapat dibaca oleh grup atau dunia, dengan asumsi bahwa apa pun yang dapat dibaca orang lain tidak boleh menjadi kredensial. Perbaikannya adalah chmod 600 ~/.ssh/id_rsa (dan chmod 700 ~/.ssh pada direktori itu sendiri). Logika yang sama berlaku untuk ~/.gnupg/ dan sebagian besar penyimpanan kredensial lainnya.

Apa perbedaan antara chmod dan chown?

chmod mengubah bit mode, apa yang dapat dilakukan pemilik/grup/yang lainnya. chown mengubah siapa pemiliknya. Seringkali Anda membutuhkan keduanya: file yang «pengguna yang salah tidak dapat membaca» biasanya tidak perlu izinnya dibuka; file tersebut perlu dimiliki oleh pengguna yang membutuhkan akses. Coba chown myuser:mygroup file terlebih dahulu.

Apakah saya harus menggunakan 666 untuk file log?

Hampir tidak pernah. File log world-writable memungkinkan proses apa pun (termasuk layanan yang dikompromikan yang berjalan sebagai pengguna dengan hak istimewa rendah) untuk memalsukan entri log atau menghapus log. Pola standar adalah membuat direktori log dapat ditulis oleh grup log tertentu (adm di Debian, wheel di BSD, dll.) dan menambahkan layanan yang relevan ke grup tersebut, atau menggunakan logrotate + daemon logging (rsyslog, systemd-journald) yang menangani kepemilikan file untuk Anda.

Apakah kalkulator ini memperhitungkan bit khusus?

Tidak, ini mencakup sembilan bit izin dasar (mode standar 3 digit). Untuk setuid (4xxx), setgid (2xxx) atau sticky (1xxx), Anda perlu menambahkan digit terdepan secara manual. Sebagian besar pekerjaan chmod sehari-hari menggunakan mode 3 digit dan tidak pernah menyentuh bit khusus.

Apakah ada yang dikirim ke server?

Tidak. Konversi toggle ↔ oktal ↔ simbolis adalah aritmatika murni, dihitung di browser Anda. Halaman ini bekerja offline setelah dimuat.

Alat terkait

Generator .htaccess Cron Ekspresi Generator Kalkulator Hash File Gratis