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.