Halaman manual mengatakan:
jalankan / cari hanya jika file tersebut adalah direktori atau sudah memiliki izin eksekusi untuk beberapa pengguna ( X
)
POSIX mengatakan:
The perm simbol X akan mewakili mengeksekusi / mencari sebagian dari mode file bit jika file adalah sebuah direktori atau jika saat ini (dimodifikasi) mode file bit memiliki setidaknya satu dari eksekusi bit (S_IXUSR, S_IXGRP, atau S_IXOTH) set. Itu harus diabaikan jika file bukan direktori dan tidak ada bit eksekusi yang ditetapkan dalam bit mode file saat ini.
Ini adalah tanda izin bersyarat: chmod
lihat apa pun yang sedang diproses, dan apakah itu direktori, atau jika bit eksekusi apa pun diatur dalam izin saat ini (pemilik, grup, atau lainnya), ia bertindak seolah-olah izin yang diminta adalah x
, kalau tidak, mengabaikannya. Kondisi ini diverifikasi pada saat chmod
menerapkan X
instruksi khusus , sehingga Anda dapat menghapus bit yang dijalankan dalam menjalankan yang sama dengan a-x,a=rwX
hanya mengatur bit yang dapat dieksekusi pada direktori.
Anda dapat melihat apakah file memiliki bit eksekusi yang dijalankan dengan melihat bagian "akses" dari stat
output, atau kolom pertama dari ls -l
. Execute bits diwakili oleh x
. -rwxr-xr-x
umum untuk executable dan menunjukkan bahwa bit executable diatur untuk pemilik, grup, dan pengguna lain; -rw-r--r--
umum untuk file lain dan menunjukkan bahwa bit yang dapat dieksekusi tidak disetel (tetapi bit baca ditetapkan untuk semua orang, dan bit tulis untuk pemilik). Lihat Memahami izin UNIX dan atributnya yang jauh lebih detail.
Jadi dalam contoh Anda, u=rwX
tetapkan izin pemilik untuk membaca dan menulis dalam semua kasus, dan untuk direktori dan file yang dapat dieksekusi, jalankan; juga untuk grup ( g=rX
) dan lainnya ( o=rX
), baca, dan jalankan untuk direktori dan file yang dapat dieksekusi.
Maksud dari operator ini adalah untuk memungkinkan pengguna untuk memberikan chmod
berbagai file dan direktori, dan mendapatkan izin eksekusi yang benar (dengan asumsi tidak ada file yang memiliki set bit eksekusi yang tidak valid). Ini menghindari harus membedakan antara file dan direktori (seperti pada tradisional find . -type f -exec chmod 644 {} +
dan find . -type d -exec chmod 755 {} +
perintah), dan upaya untuk berurusan dengan executable dengan cara yang masuk akal.
(Perhatikan bahwa MacOSchmod
ternyata hanya mendukung X
untuk +
operasi.)
---, ---, ---
indoe tanpa "bit set"?