2026年11月12日

2026年11月12日

Izin File WordPress yang Direkomendasikan: Direktori 755, File 644

Artikel ini adalah edisi lokal dari artikel asli berbahasa Jepang. Baca artikel asli berbahasa Jepang

Untuk izin file (file permission) WordPress, dasarnya adalah direktori 755 dan file 644. wp-config.php, yang berisi informasi koneksi database, dibatasi lebih ketat lagi siapa yang boleh membacanya. Selain angkanya, periksa juga siapa pemilik file dan dengan pengguna apa PHP berjalan, agar Anda terhindar dari kebocoran informasi sekaligus dari masalah "tidak bisa memperbarui". Nilai yang direkomendasikan dalam artikel ini adalah hasil pengecekan panduan resmi WordPress "Hardening WordPress" per November 2026.

Cara membaca angka izin

Izin dinyatakan untuk tiga kelompok, yaitu "pemilik, grup, dan lainnya", dengan jumlah dari baca (4), tulis (2), dan eksekusi (1).

Nilai Notasi Arti
755 rwxr-xr-x Pemilik bisa membaca, menulis, dan masuk ke dalamnya; selain itu hanya bisa membaca dan masuk ke dalamnya (untuk direktori)
644 rw-r--r-- Pemilik bisa membaca dan menulis; selain itu hanya bisa membaca (untuk file)
640 rw-r----- Pemilik bisa membaca dan menulis, grup hanya membaca, dan yang lain tidak bisa melakukan apa pun
600 rw------- Hanya pemilik yang bisa membaca dan menulis
440 / 400 r--r----- / r-------- Tidak ada yang bisa menulis, dan membaca hanya bisa oleh pemilik (dan grup)

"Eksekusi (x)" pada direktori adalah izin untuk masuk ke dalam direktori tersebut. Jika x dicabut dari direktori, file di dalamnya tidak bisa dibaca.

Nilai yang direkomendasikan untuk WordPress

Target Nilai yang direkomendasikan Keterangan
Direktori 755 (750 jika di shared hosting dan tidak ingin terlihat oleh orang lain) Pembaruan otomatis resmi juga menyeragamkan direktori ke 755
File 644 (640 pada kasus yang sama seperti di atas) Pembaruan otomatis resmi juga menyeragamkan file ke 644
wp-config.php Batasi agar hanya Anda dan web server yang bisa membacanya Penjelasan resminya adalah "umumnya 400 atau 440". Pada lingkungan tempat PHP berjalan dengan pengguna yang sama dengan pemilik file, 600 atau 400 pun tetap berfungsi
.htaccess 644 Jika Anda membiarkan WordPress menulis ulang file ini saat menyimpan pengaturan permalink, pengguna yang menjalankan PHP harus bisa menulis ke file tersebut
wp-content/uploads Direktori 755, file 644 Jadikan pemiliknya pengguna yang bisa ditulisi oleh pengguna yang menjalankan PHP

Tidak perlu menetapkan 777 (siapa pun bisa menulis). Di shared server, ada risiko file ditulis ulang oleh pengguna lain di server yang sama.

Beberapa penyedia rental server menetapkan nilai rekomendasi sendiri (karena cara menjalankan PHP berbeda di setiap server). Jika manual server yang Anda sewa mencantumkan nilai tertentu, utamakan nilai tersebut.

Cara memahami pemilik file

Menurut penjelasan resmi, file dimiliki oleh akun pengguna Anda sendiri dan bisa Anda tulisi. Hanya file yang perlu ditulis oleh WordPress (uploads, dan tema jika Anda memakai Theme File Editor) yang pemilik atau grupnya disesuaikan agar bisa ditulis oleh pengguna yang menjalankan web server (PHP).

Jika seluruhnya dijadikan milik pengguna web server, seperti dengan chown -R www-data:www-data, semua file bisa ditulis ulang dari PHP. Kerusakan lebih mudah meluas ketika kerentanan plugin dieksploitasi, jadi periksa kondisi saat ini terlebih dahulu sebelum memutuskan.

Jika pembaruan plugin atau inti meminta "informasi koneksi (nama host, nama pengguna, dan kata sandi FTP)", penyebabnya umumnya adalah pemilik file yang tidak cocok. WordPress memilih cara menulis ulang file secara langsung hanya jika pemilik file yang dibuat PHP sama dengan pemilik file WordPress. Jika berbeda, WordPress meminta pembaruan lewat FTP. Jangan melonggarkan izin ke 777; perbaiki dengan menyamakan pemiliknya.

Memeriksa pengaturan saat ini

Masuk ke direktori WordPress lewat SSH, lalu periksa nilai dan pemiliknya dengan perintah berikut. Sesuaikan path dengan lingkungan Anda.

cd /var/www/html

# Nilai, pemilik, dan grup wp-config.php
stat -c '%a %U:%G %n' wp-config.php

# Cari file dan direktori yang bisa ditulis oleh pengguna lain
find . -perm -o=w ! -type l

# Cari file PHP di dalam uploads (biasanya tidak ada)
find wp-content/uploads -type f -name '*.php'

Pengguna yang menjalankan PHP saat diakses dari web dapat Anda periksa di konfigurasi server (misalnya user pada pool PHP-FPM) atau di manual rental server. Pengguna ini belum tentu sama dengan pengguna yang login lewat SSH.

Jika ada file PHP yang tidak Anda kenal di dalam uploads, curigai adanya perusakan, dan catat tanggal serta isi file sebelum menghapusnya.

Memperbaiki izin secara massal

Jalankan di direktori WordPress. Buat cadangan sebelum menjalankannya.

cd /var/www/html

# Seragamkan direktori ke 755 dan file ke 644
find . -type d -exec chmod 755 {} +
find . -type f -exec chmod 644 {} +

# Batasi wp-config.php (contoh untuk lingkungan tempat PHP berjalan sebagai pemilik file)
chmod 600 wp-config.php

Nilai wp-config.php dipilih sesuai lingkungan Anda seperti berikut.

  • PHP berjalan dengan pengguna yang sama dengan pemilik file (kebanyakan shared hosting, PHP-FPM per pengguna): 600 atau 400
  • Pemilik adalah akun Anda sendiri dan web server membacanya sebagai grup: gunakan 640 atau 440, dan jadikan grupnya grup web server
# Contoh: pemilik adalah akun sendiri, grup adalah web server (www-data), dengan 640
sudo chgrp www-data wp-config.php
chmod 640 wp-config.php

Setelah pengaturan, buka situs dan layar admin, lalu pastikan tampilan dan login berfungsi. Jika muncul layar putih kosong atau error, berarti PHP tidak bisa membaca wp-config.php. Kembalikan nilainya ke 644, lalu tinjau ulang pemilik dan grupnya.

Jika diatur ke 400 atau 440, plugin yang menulis ke wp-config.php (misalnya yang menulis pengaturan cache) akan gagal. Izinkan penulisan sementara hanya saat mengatur plugin semacam itu.

Mencegah wp-config.php dibaca dari web

Jika PHP berjalan normal, isi wp-config.php tidak ditampilkan meskipun diakses dari browser. Untuk mencegah sumbernya tampil ketika PHP berhenti dan sebagainya, tolak juga aksesnya di sisi web server. Pada Apache 2.4, tulis berikut ini di .htaccess pada direktori tempat WordPress berada (Order Deny,Allow / Deny from all yang lama adalah penulisan Apache 2.2).

<Files "wp-config.php">
    Require all denied
</Files>

Langkah rincinya dijelaskan di "Pengaturan untuk menolak akses ke wp-config.php".

.htaccess sendiri sudah ditolak aksesnya oleh pengaturan standar Apache (<Files ".ht*"> di httpd.conf).

Menurut penjelasan resmi, wp-config.php juga bisa dipindahkan satu tingkat di atas direktori tempat WordPress berada. Jika tidak ada wp-config.php di direktori yang sama, WordPress mencarinya di satu direktori di atas. Namun panduan resmi pun menyinggung pendapat bahwa efeknya kecil, dan bahwa cara yang salah justru berbahaya. Jika Anda memindahkannya, pastikan satu direktori di atas itu bukan direktori publik.

Jangan jalankan PHP di uploads

uploads adalah direktori yang ditulisi WordPress, sehingga mudah menjadi tempat penyerang meletakkan file. Jika PHP dicegah berjalan di sini, file yang diletakkan pun tidak akan berfungsi.

Pada Apache 2.4, buat wp-content/uploads/.htaccess lalu tulis berikut ini.

<FilesMatch "\.(php|phtml|phar)$">
    Require all denied
</FilesMatch>

Agar Require bisa dipakai di .htaccess, hal itu harus diizinkan lewat AllowOverride di sisi server. Jika tidak diizinkan, akan muncul error 500 atau pengaturan diabaikan. Setelah menulisnya, buka URL PHP yang tidak ada seperti https://example.com/wp-content/uploads/test.php dan pastikan hasilnya 403 (jika tetap 404, pengaturan belum berlaku).

Pada Nginx, di dalam blok server, letakkan berikut ini sebelum location ~ \.php$ yang memproses PHP. Hal ini karena location berekspresi reguler dicocokkan dari atas ke bawah, dan yang pertama cocok akan dipakai.

location ~* ^/wp-content/uploads/.*\.(php|phtml|phar)$ {
    deny all;
}

Setelah mengubah pengaturan, periksa sintaksisnya dengan nginx -t lalu muat ulang.

Selain itu, unggahan media WordPress secara bawaan tidak menerima file selain jenis yang diizinkan (gambar, PDF, dan sebagainya). Mengunggah file PHP sebagai media umumnya tidak bisa dilakukan dari layar admin.

Hal yang perlu diperhatikan

  • Sebelum mengubah izin, buat cadangan file dan database.
  • Jika Anda mengubah izin dengan perangkat lunak FTP, tergantung servernya, perubahan massal bisa tidak didukung. Jika jumlahnya banyak, memakai find lewat SSH lebih cepat dan mencegah ada yang terlewat.
  • Jika diminta informasi koneksi FTP saat pembaruan, jangan melonggarkan izin; periksa pemiliknya. Lihat juga "Cara memperbaiki error izin WordPress".
  • Jalankan perintah pemeriksaan di atas secara berkala (file yang bisa ditulis pengguna lain, dan PHP di dalam uploads) agar Anda cepat menyadari pengaturan yang rusak atau perusakan situs.

Ada pertanyaan tentang WordPress? Penerbit situs ini berada di Jepang dan membalas dalam bahasa Jepang. Kontak (bahasa Jepang)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲