chmod
sebenarnya bisa melakukan ini sendiri; X
izin simbolis berarti "jalankan, jika masuk akal" yang umumnya berarti pada direktori tetapi bukan file. Jadi, Anda dapat menggunakan:
chmod -R u=rwX,go=rX /path/to/htdocs
Satu-satunya masalah potensial adalah jika salah satu file biasa sudah memiliki set eksekusi, chmod
menganggap itu disengaja dan menyimpannya. Jika ini merupakan masalah potensial dan Anda memiliki chmod
versi GNU (yaitu Anda menggunakan Linux), Anda bisa mendapatkannya untuk menghapus izin eksekusi liar seperti ini:
chmod -R a-x,u=rwX,go=rX /path/to/htdocs
Sayangnya, trik ini tidak bekerja dengan versi bsd (/macOS) dari chmod
(Saya tidak yakin tentang versi lain). Ini karena versi bsd menerapkan X
izin berdasarkan "mode asli (tidak dimodifikasi)", yaitu apakah ada bit eksekusi sebelum a-x
modifikasi telah dilakukan (lihat man
halaman).
Gunakan find
untuk mencari direktori dan menerapkan chmod padanya:
find -type d | xargs chmod 775
Gunakan jenis f
untuk file:
find -type f | xargs chmod 775
Gunakan -type
find opsi untuk membatasi tindakan ke file dan direktori. Gunakan -o
opsi untuk menentukan tindakan alternatif untuk jenis yang berbeda, jadi Anda hanya perlu menjalankan find
sekali, bukan secara terpisah untuk setiap jenis.
find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +