Anda dapat menggunakan chmod dengan X
huruf mode (huruf besar X) untuk menyetel flag yang dapat dieksekusi hanya untuk direktori.
Pada contoh di bawah, flag yang dapat dieksekusi dihapus dan kemudian disetel untuk semua direktori secara rekursif:
~$ mkdir foo
~$ mkdir foo/bar
~$ mkdir foo/baz
~$ touch foo/x
~$ touch foo/y
~$ chmod -R go-X foo
~$ ls -l foo
total 8
drwxrw-r-- 2 wq wq 4096 Nov 14 15:31 bar
drwxrw-r-- 2 wq wq 4096 Nov 14 15:31 baz
-rw-rw-r-- 1 wq wq 0 Nov 14 15:31 x
-rw-rw-r-- 1 wq wq 0 Nov 14 15:31 y
~$ chmod -R go+X foo
~$ ls -l foo
total 8
drwxrwxr-x 2 wq wq 4096 Nov 14 15:31 bar
drwxrwxr-x 2 wq wq 4096 Nov 14 15:31 baz
-rw-rw-r-- 1 wq wq 0 Nov 14 15:31 x
-rw-rw-r-- 1 wq wq 0 Nov 14 15:31 y
Sedikit penjelasan:
chmod -x foo
- hapus eXecutable bendera untukfoo
chmod +x foo
- atur dapat dieksekusi bendera untukfoo
chmod go+x foo
- sama seperti di atas, tetapi setel bendera hanya untuk Grup dan Lainnya pengguna, jangan sentuh Pengguna izin (pemilik)chmod go+X foo
- sama seperti di atas, tetapi hanya berlaku untuk direktori, jangan menyentuh filechmod -R go+X foo
- sama seperti di atas, tetapi lakukan ini Secara Rekursif untuk semua subdirektori darifoo
Anda memerlukan akses baca, selain akses eksekusi, untuk membuat daftar direktori. Jika Anda hanya memiliki akses eksekusi, maka Anda dapat mengetahui nama-nama entri dalam direktori, tetapi tidak ada informasi lain (bahkan tipe, jadi Anda tidak tahu entri mana yang merupakan subdirektori). Ini bekerja untuk saya:
find . -type d -exec chmod +rx {} \;