GNU/Linux >> Belajar Linux >  >> Linux

Linux:Tetapkan izin hanya untuk direktori

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 {} +

Linux
  1. Contoh Perintah Dasar "chmod" di Linux

  2. Panduan untuk Perintah "Temukan" Linux

  3. Bagaimana cara mengulang direktori di Linux?

  1. Hapus hanya file dalam direktori di direktori BUKAN linux

  2. Linux temukan/cari partisi root HANYA?

  3. Bagaimana menemukan hanya direktori tanpa subdirektori?

  1. Pengenalan perintah chmod Linux

  2. Cara Mencari dan Menghapus Direktori Secara Rekursif di Linux

  3. Temukan File dan Direktori di Linux Seperti Profesional