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"?---------
berarti tidak ada bit yang ditetapkan. Anda mungkin menemukan pertanyaan ini bermanfaat....,...,...
) serta "set bit mengeksekusi mengeksekusi" (saya akan menggambarkan sebagai---,---,---
), pada awal jawaban, dapat membantu membuatnya lebih didaktik dan menurunkan peluang siapa pun yang melewatkan itu; Inilah saya awalnya jatuh dengan ini.chmod
mengatakannya "mengubah bit mode file dari setiap file yang diberikan" dll. Jadi dalam konteks, "jalankan bit (s)" rujuk ke tiga kemungkinan (ugo)+x
izin. Menurut saya, "no bits set" terdengar aneh, karena tidak menyebutkan konteks apa pun....,...,...
tidak benar-benar berarti apa-apa, dan juga "set bit eksekusi tidak valid" (apa yang tidak valid tentang itu?).Dari
man chmod
:(penekanan milikku).
Namun itu tidak terlalu memperjelasnya. Artikel ini memiliki dua aturan yang menjelaskan apa yang dilakukannya:
Sebagai contoh, kami mengeluarkan perintah chmod berikut pada direktori:
Menggunakan huruf besar X, perintah di atas menetapkan atribut yang dapat dieksekusi sesuai dengan dua aturan berikut:
Jika file tersebut adalah direktori, maka ia menetapkan atribut yang dapat dieksekusi untuk pemilik, grup, dan dunia, yang berarti bahwa mereka dapat memasuki direktori ini.
Jika file tersebut adalah file biasa, maka ia akan menambahkan atribut yang dapat dieksekusi ke izinnya, jika file tersebut sudah memiliki beberapa bit eksekusi. Jika file tidak memiliki bit eksekusi, tidak ada yang akan ditambahkan.
Menggunakan huruf kecil x tidak mungkin mencapai hasil ini hanya dengan satu perintah.
Harapan yang memperjelas penggunaan dari X .
sumber
Tolong jangan abaikan jawaban ini. Itu hanya apa yang saya mengerti dari jawaban Stephen Kitt di atas, yang saya terima benar.
1) Huruf X seperti dalam
a=rwX
mengatakan: Semua direktori yang ditemukan akan mendapatkan x dan semua file biasa ditemukan yang memiliki setidaknya 1 bit yang dapat dieksekusi di salah satu dari tiga grup izin, juga akan mendapatkan x dalam ketiga grup.2) Kombo dari
a-x
(yang memastikan bahwa semua file kehilangan bit eksekusi), dan yang berikutnyaa=rwX
mengatakan: Dapatkan bit baca dan tulis di mana-mana, dan bit eksekusi hanya pada direktori.sumber