Jika Anda menggunakan Linux sebagai sistem operasi utama atau mengelola server Linux, Anda akan menemukan situasi ketika Anda mencoba membuat atau mengedit file dan menerima kesalahan “Permission deny“. Biasanya, kesalahan yang terkait dengan izin dapat diselesaikan dengan mengatur izin atau kepemilikan file yang benar.

Linux adalah sistem multi-user, dan akses ke file dikendalikan melalui izin file, atribut, dan kepemilikan. Ini memastikan bahwa hanya pengguna dan proses yang sah yang dapat mengakses file dan direktori.

Untuk informasi lebih lanjut tentang izin file, lihat “Perintah Umask di Linux“.

Pada artikel ini, kami akan menjelaskan cara mengubah izin file dan direktori secara rekursif.

Chmod Rekursive

Perintah chmod memungkinkan Anda untuk mengubah izin file menggunakan mode simbolik atau numerik.

Untuk beroperasi secara rekursif pada semua file dan direktori di bawah direktori yang diberikan, gunakan perintah chmod dengan opsi -R, (--recursive). Sintaks umum untuk mengubah izin file secara rekursif adalah sebagai berikut:

chmod -R MODE DIRECTORY

Misalnya, untuk mengubah izin semua file dan subdirektori di bawah direktori /var/www/html ke 755 , Maka kita akan menggunakan perintah :

chmod -R 755 /var/www/html

Mode ini juga dapat ditentukan menggunakan metode simbolis berikut :

chmod -R u=rwx,go=rx /var/www/html

Hanya root, pemilik file, atau pengguna dengan hak sudo yang dapat mengubah izin file. Berhati-hatilah saat mengubah izin file secara recursive.

Menggunakan Perintah find

Secara umum, file dan direktori tidak boleh memiliki izin yang sama. Sebagian besar file tidak memerlukan izin eksekusi, sedangkan Anda harus mengatur izin eksekusi pada direktori untuk masuk ke dalam direktori.

Skenario yang paling umum adalah mengubah izin file situs web secara rekursi menjadi 644 dan izin direktori menjadi 755.

Menggunakan metode numerik:

find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

Menggunakan metode simbolis:

find /var/www/html -type d -exec chmod u=rwx,go=rx {} \;
find /var/www/html -type f -exec chmod u=rw,go=r {} \;

Perintah find akan mencari file atau direktori di bawah /var/www/html dan meneruskan setiap file atau direktori yang ditemukan ke perintah chmod untuk mengatur izin.

Saat menggunakan find dengan -exec, perintah chmod dijalankan untuk setiap entri yang ditemukan. Gunakan perintah xargs untuk mempercepat operasi dengan mengirimkan beberapa entri sekaligus:

find /var/www/html -type d -print0 | xargs -0 chmod 755 
find /var/www/html -type f -print0 | xargs -0 chmod 644

Kesimpulan

Perintah chmod dengan opsi -R memungkinkan Anda untuk mengubah izin file secara rekursif.

Untuk menetapkan izin file secara rekursif berdasarkan jenisnya, gunakan chmod bersama dengan perintah find.