Benjamin adalah pendiri dan pengembang utama Gambit. Dia adalah pencipta Page Builder Sandwich and Stackable – Ultimate Gutenberg Blocks. Anda dapat menemukan … Selengkapnya tentang Benjamin ↬
Buletin Email
Email (menghancurkan) Anda
Kiat mingguan tentang front-end & UX
Dipercaya oleh 200.000+ orang
- Bersiaplah untuk peran komunikasi hari ini MS Northwestern dalam Desain Informasi
- Pola Desain Antarmuka Cerdas, kursus video 9 jam
- Front-End SmashingConf 2023
- Beriklan di Majalah Smashing
- Pelatihan UX Pola Desain Antarmuka
Ketika orang berbicara tentang keamanan WordPress, izin dan kepemilikan file biasanya menjadi hal terakhir yang ada di pikiran mereka. Menginstal plugin keamanan adalah praktik yang baik dan wajib untuk setiap situs web WordPress. Namun, jika izin sistem file Anda tidak diatur dengan benar, sebagian besar langkah keamanan Anda dapat dengan mudah dilewati oleh penyusup.
Izin dan kepemilikan cukup penting dalam instalasi WordPress. Menyiapkan ini dengan benar di server Web Anda harus menjadi hal pertama yang Anda lakukan setelah menginstal WordPress. Memiliki izin yang salah dapat menyebabkan kesalahan fatal yang menghentikan situs web Anda mati. Izin yang salah juga dapat membahayakan situs web Anda dan membuatnya rentan terhadap serangan
Bacaan Lebih Lanjut di SmashingMag.
- Apa yang Harus Dilakukan Saat Situs Web Anda Turun
- Cara Menjaga Alur Kerja Pengodean Anda Tetap Terorganisir
- Cara mengetahui mengapa situs web Anda berhenti bekerja
- 9 Langkah Menuju Hubungan Bahagia Dengan Penyedia Hosting Anda
Lebih banyak setelah melompat. Lanjutkan membaca di bawah ↓
Temui Smashing Email Newsletter dengan tips bermanfaat tentang front-end, desain & UX. Berlangganan dan dapatkan "Daftar Periksa Desain Antarmuka Cerdas" — setumpuk PDF gratis dengan 150+ pertanyaan untuk ditanyakan pada diri sendiri saat mendesain dan membangun hampir semua hal
Email (menghancurkan) Anda
Sekali seminggu. Kiat berguna tentang front-end & UX. Dipercaya oleh 190. 000 orang ramah
Selain masalah keamanan, sejumlah masalah lain dapat berasal dari izin dan kepemilikan yang salah. Pernahkah Anda menemukan layar putih kosong saat mencoba memuat situs web Anda untuk pertama kali?
Pada artikel ini, kami akan mengajarkan Anda semua tentang izin dan kepemilikan sistem file WordPress. apa itu, mengapa itu penting dan bagaimana mengaturnya. Anda akan mempelajari beberapa prinsip dasar yang saya ikuti untuk menjaga sistem file saya tetap utuh. Kami juga akan membahas dua konfigurasi server WordPress yang paling umum. Kami akan menjelaskan perbedaannya dan, yang lebih penting, cara mengatur izin dan kepemilikan yang tepat untuk masing-masing
Terminal Vs. Klien FTP
Selama artikel ini, kami akan menggunakan terminal untuk mengubah izin dan kepemilikan. Mengapa tidak menggunakan klien FTP saja? . FTP dapat digunakan untuk mentransfer file dan mengubah izin file dan folder, tetapi tidak dapat digunakan untuk mengubah pengaturan kepemilikan
Untuk melakukan perintah yang tercantum dalam artikel ini, Anda harus masuk ke server Anda menggunakan perintah SSH. Jika Anda tidak terbiasa dengan terminal dan SSH, Anda dapat mempelajarinya di artikel “Pengantar Perintah Linux. ”
Pengguna Dan Grup
Sebelum hal lain, kita perlu segera membahas tentang apa itu pengguna dan grup, karena ini berjalan seiring saat menentukan izin
Sederhananya, pengguna adalah akun yang memiliki akses ke komputer, dan grup hanyalah pengidentifikasi untuk sekumpulan pengguna tertentu. Ini berarti setiap kali Anda mentransfer file menggunakan FTP, Anda menggunakan akun pengguna di server Anda. Dan tergantung pada bagaimana host Anda mengatur akun Anda, Anda (pengguna) mungkin termasuk dalam satu atau lebih grup. Pengguna dan grup seperti pengguna dan peran di WordPress. Keduanya secara konseptual sama, kecuali yang pertama digunakan di server Anda
Pengguna dan grup penting karena membantu mengidentifikasi hak istimewa untuk semua file dan folder kami. Pemilik file biasanya memiliki hak penuh atas file tersebut; . Hak istimewa inilah yang kami sebut izin
Apa Itu Izin File?
Izin menentukan apa yang dapat dilakukan pengguna dengan file. Izin diwakili oleh serangkaian angka, seperti sudo find . -type f -exec chmod 644 {} + 1 atau sudo find . -type f -exec chmod 644 {} + 2, disebut sebagai mode izin. Jika Anda pernah menggunakan plugin di WordPress sebelumnya, kemungkinan besar Anda akan diminta oleh beberapa dari mereka untuk mengubah izin file atau direktori karena plugin tidak dapat menulis ke sana. Dengan mengubah izin file, Anda mengizinkan server Web untuk mendapatkan akses ke file atau folder tersebut
Pikirkan mode izin sebagai satu set pernyataan "siapa yang dapat melakukan apa", di mana setiap digit sesuai dengan bagian "siapa" dari pernyataan tersebut
- Angka pertama. Apa yang dapat dilakukan oleh pengguna akun yang memiliki file tersebut
- Angka kedua. Apa yang dapat dilakukan oleh akun pengguna lain di grup pemilik
- Angka ketiga. Apa yang dapat dilakukan oleh akun pengguna orang lain (termasuk pengunjung situs web).
Selanjutnya, angka tersebut sesuai dengan bagian "apa" dari pernyataan tersebut dan merupakan jumlah dari kombinasi angka-angka ini
- sudo find . -type f -exec chmod 644 {} + 3 Membaca file, atau membaca nama file dalam folder
- sudo find . -type f -exec chmod 644 {} + 4 Tulis atau ubah file, atau ubah isi folder
- sudo find . -type f -exec chmod 644 {} + 5 Mengeksekusi atau menjalankan file, atau mengakses file dalam folder
Digit ini adalah hak istimewa yang diberikan kepada "siapa" dalam mode izin. Perhatikan dalam daftar di atas bahwa hak istimewa berarti sesuatu yang berbeda untuk file dan folder
Menggunakan mode izin yang benar cukup penting. Untuk mengilustrasikan hal ini dengan lebih baik, pikirkan kembali pengguna dan peran di WordPress. Di situs web WordPress, kontributor dan administrator memiliki kemampuan yang berbeda. Kontributor boleh membuat postingan blog baru, tetapi mereka tidak boleh menambahkan plugin. Sebaliknya, administrator dapat menambahkan plugin dan juga membuat posting blog. Administrator bahkan dapat mengubah tampilan situs web jika mereka mau. Garis yang jelas memisahkan apa yang dapat dilakukan oleh pengguna dalam peran yang berbeda. Ini sama dengan mode izin, kecuali bahwa alih-alih berurusan dengan posting blog dan opsi tema, kita berurusan dengan file dan folder di server
Mengubah Mode Izin
Klien FTP biasanya menyediakan antarmuka tempat Anda dapat dengan mudah mengubah mode izin file dan folder Anda. Ini tangkapan layar antarmuka di klien FTP saya
Contoh antarmuka mode izin
Jika Anda memiliki akses ke terminal server Anda, Anda juga dapat menggunakan perintah sudo find . -type f -exec chmod 644 {} + 6 untuk mengubah mode izin file atau folder
sudo chmod 644 <file> _Untuk mengubah mode izin semua file atau folder, gunakan sudo find . -type f -exec chmod 644 {} + 6 bersamaan dengan perintah sudo find . -type f -exec chmod 644 {} + 8. Misalnya, Anda dapat menggunakan ini untuk mengubah semua file menjadi sudo find . -type f -exec chmod 644 {} + 1
sudo find . -type f -exec chmod 644 {} +Atau gunakan ini untuk mengubah semua folder Anda menjadi sudo find . -type d -exec chmod 755 {} + 0
sudo find . -type d -exec chmod 755 {} +Lihat “Mengubah Izin File di Codex WordPress” untuk panduan mengubah mode izin
Perbedaan Antara 644 Dan 777
Mari kita lihat beberapa mode izin dan bagaimana pengaruhnya terhadap situs web kita
Apa arti skrip PHP dengan mode izin sudo find . -type f -exec chmod 644 {} + 1?
- Keistimewaan pemilik adalah “baca” (4) + “tulis” (2) = sudo find . -type d -exec chmod 755 {} + 2
- Hak istimewa grup pemilik adalah "baca" (4) = sudo find . -type f -exec chmod 644 {} + 3
- Keistimewaan orang lain adalah “membaca” (4) = sudo find . -type f -exec chmod 644 {} + 3
Dalam bahasa sederhana, ini berarti bahwa
- jika kami memiliki skrip, kami dapat membaca dan memodifikasinya;
- orang lain hanya dapat membacanya
Seperti yang bisa kita lihat, sudo find . -type f -exec chmod 644 {} + _1 adalah mode izin yang baik untuk skrip PHP kita. Kami dapat mengubahnya, dan server Web kami dapat membacanya
Sekarang mari kita lihat folder. Bagaimana jika kita memiliki folder yang memiliki mode izin sudo find . -type f -exec chmod 644 {} + 2?
- Hak istimewa pemilik adalah "baca" (4) + "tulis" (2) + "jalankan" (1) = sudo find . -type d -exec chmod 755 {} + 7
- Hak istimewa grup pemilik adalah "baca" (4) + "tulis" (2) + "jalankan" (1) = sudo find . -type d -exec chmod 755 {} + 7
- Hak istimewa orang lain adalah "baca" (4) + "tulis" (2) + "jalankan" (1) = sudo find . -type d -exec chmod 755 {} + 7
Ini berarti bahwa
- siapa pun dapat memperoleh daftar nama file di folder kami;
- siapa pun dapat membuat, memodifikasi, dan menghapus file apa pun di folder kami;
- siapa pun dapat mengakses file di folder kami
Jelas bahwa sudo find . -type f -exec chmod 644 {} + _2 adalah mode izin yang buruk untuk apa pun di situs web WordPress kami karena setiap pengunjung dapat menambahkan file ke direktori kami atau bahkan menghapus skrip. Lebih buruk lagi, siapa pun dapat memasukkan kode berbahaya dan membahayakan situs web kami
Konfigurasi Server WordPress
Sekarang kita tahu tentang izin dan cara membacanya. Namun sebelum melanjutkan untuk mengubah semua izin kami, kami perlu memahami bagaimana server kami disiapkan. Karena izin berurusan dengan akun dan grup pengguna, kami perlu mengetahui bagaimana situs web WordPress kami berjalan
Banyak konfigurasi server yang berbeda di luar sana. Konfigurasi yang berbeda membutuhkan rangkaian mode izin yang berbeda agar WordPress berfungsi dengan benar dan aman. Kami akan berbicara tentang hanya dua konfigurasi yang paling umum dan izin yang tepat untuk keduanya
- Konfigurasi server standar
- Anda memiliki akun pengguna
- Server Web Anda berjalan sebagai akun pengguna lain
- Konfigurasi server bersama atau
groups
1 konfigurasi
- Anda memiliki akun pengguna
- Orang lain yang menggunakan server memiliki akun pengguna dan mungkin berbagi grup yang sama dengan akun pengguna Anda
- Server Web Anda berjalan sebagai pemilik file WordPress Anda
Perbedaan utama antara keduanya adalah bagaimana server Web berjalan
Izin Untuk Konfigurasi Server WordPress Standar
Konfigurasi WordPress standar membutuhkan lebih banyak pekerjaan daripada konfigurasi server bersama karena server Web tidak memiliki hubungan dengan akun pengguna kami
Kepemilikan File dan Folder untuk WordPress
Pertama, kita perlu menyesuaikan kepemilikan file dan folder dari file WordPress Anda. Kami harus memastikan hal-hal berikut
- bahwa akun pengguna Anda adalah pemilik dari semua file dan folder WordPress,
- bahwa akun pengguna Anda dan akun pengguna server Web milik grup yang sama
Untuk mengetahui grup tempat akun pengguna Anda berada, Anda dapat menggunakan perintah ini di terminal server Anda
groupsKemudian, untuk mengetahui grup yang dimiliki oleh server Web Anda, Anda dapat menyisipkan sementara potongan PHP ini di salah satu skrip WordPress Anda
echo exec( 'groups' );Jika pengguna Anda dan server Web tidak termasuk dalam grup yang sama, Anda dapat menggunakan perintah berikut di terminal untuk menambahkan pengguna Anda ke salah satu grup server Web Anda
sudo usermod -a -G <a-common-group-name> myuserTerakhir, untuk memastikan bahwa semua yang ada di folder WordPress kami milik akun pengguna kami dan memiliki grup bersama yang baru saja kami tambahkan, lakukan perintah ini di folder WordPress Anda
sudo find . -exec chown myuser:a-common-group-name {} +Izin untuk WordPress
Semua file dan folder kita sekarang harus memiliki kepemilikan yang benar. Sekarang saatnya menyesuaikan mode izin. Untuk mempermudah, Anda hanya perlu mengingat yang berikut ini
- Semua file harus ________23______2
- Semua folder harus groups 3
- groups _4 seharusnya groups 5
Inilah yang kami coba capai dengan serangkaian mode izin ini
- Akun pengguna kami dapat membaca dan memodifikasi file kami
- WordPress (melalui server Web kami) dapat membaca dan memodifikasi skrip kami
- WordPress dapat membuat, mengubah, atau menghapus file dan folder
- Orang lain mungkin tidak melihat kredensial database kami di groups 4
Anda mungkin berpikir bahwa mengizinkan hak istimewa penuh WordPress dengan folder kami tidaklah aman. Jangan khawatir — kami melakukan ini karena WordPress memerlukan fitur tertentu untuk membuat dan memodifikasi file. WordPress memungkinkan kita untuk mengunggah dan menghapus tema dan plugin dan bahkan mengedit skrip dan gaya dari ujung belakang administratif. Tanpa jenis izin ini, kami harus mengunggah tema dan plugin secara manual setiap kali menggunakan FTP
Anda dapat menggunakan klien FTP Anda untuk mengubah mode izin, atau Anda dapat menggunakan perintah berikut di direktori WordPress Anda untuk menyesuaikan izin semua file dan folder Anda dengan cepat
sudo find . -type f -exec chmod 664 {} + sudo find . -type d -exec chmod 775 {} + sudo chmod 660 wp-config.phpPerhatikan bahwa beberapa server Web lebih ketat daripada yang lain. Jika milik Anda ketat, maka menyetel groups 4 ke groups 5 mungkin menghentikan situs web Anda berfungsi. Dalam hal ini, biarkan saja sebagai ________23______2
Izin Untuk Konfigurasi Server Bersama Atau Konfigurasi echo exec( 'groups' ); 0
Izin untuk konfigurasi server bersama lebih mudah diimplementasikan. Kami tidak akan memikirkan kepemilikan karena server Web berjalan sebagai pemilik file dan folder kami. Karena akun pengguna kami dan server Web berbagi izin yang sama (keduanya adalah pemilik), kami dapat langsung mengubah mode izin
- Semua file harus sudo find . -type f -exec chmod 644 {} + 1
- Semua folder harus sudo find . -type d -exec chmod 755 {} + 0
- groups 4 seharusnya echo exec( 'groups' ); 4
Mirip dengan set mode izin sebelumnya, ini dipecah sebagai berikut
- Akun pengguna kami dapat membaca dan memodifikasi file kami
- WordPress (melalui server Web kami dan sebagai pemilik akun) dapat membaca dan memodifikasi skrip kami
- WordPress dapat membuat, mengubah, atau menghapus file atau folder
- Orang lain mungkin tidak melihat kredensial database kami di groups 4
Sekali lagi, Anda dapat menggunakan klien FTP untuk mengubah mode izin, atau Anda dapat menggunakan perintah berikut di direktori WordPress Anda untuk menyesuaikan izin semua file dan folder Anda dengan cepat
sudo find . -type f -exec chmod 644 {} + sudo find . -type d -exec chmod 755 {} + sudo chmod 600 wp-config.phpMirip dengan konfigurasi server WordPress standar, server Anda mungkin lebih ketat dari yang lain dan mungkin tidak mengizinkan groups 4 menjadi echo exec( 'groups' ); 4. Dalam hal ini, Anda dapat menyesuaikannya menjadi echo exec( 'groups' ); 8 yang lebih lunak;
Selalu ikuti pedoman ini dan file WordPress Anda harus tetap aman dari penyusup
Jebakan Umum
Kesalahan umum yang dilakukan orang adalah menyetel folder sudo usermod -a -G <a-common-group-name> myuser 0 ke sudo find . -type f -exec chmod 644 {} + 2. Beberapa melakukan ini karena mendapatkan kesalahan saat mencoba mengunggah gambar ke situs web mereka, dan sudo find . -type f -exec chmod 644 {} + 2 dengan cepat memperbaiki masalah ini. Tetapi jangan pernah memberikan akses tanpa batas kepada semua orang, atau Anda akan membuat server Web rentan terhadap serangan. Jika Anda mengikuti pedoman yang tercakup dalam artikel ini, Anda seharusnya tidak memiliki masalah mengunggah file ke situs web Anda
Namun, kadang-kadang, sebuah plugin akan meminta Anda mengatur file ke sudo find . -type f -exec chmod 644 {} + 2. Pada kesempatan ini, Anda dapat menyetelnya untuk sementara ke sudo find . -type f -exec chmod 644 {} + 2, tetapi pastikan untuk menyetelnya kembali ke mode izin aslinya setelah selesai
Kesimpulan
Kami sekarang telah mempelajari tentang izin yang tepat dan kepemilikan file dari situs web WordPress. Kami juga telah belajar untuk menghindari mode izin sudo find . -type f -exec chmod 644 {} + 2 karena dapat membahayakan server Web
Mudah-mudahan, Anda dapat menerapkan tips ini untuk menjaga situs web WordPress Anda tetap aman dan terlindungi. Jika Anda memiliki kiat tambahan terkait izin dan keamanan, silakan bagikan di komentar di bawah