Mengapa folder harus dapat dieksekusi?

29

Izin untuk file:

chmod 664 myFile // rw-rw-r--

Dan untuk folder:

chmod 774 myFolder // rwxrwxr--

Jika saya hanya menggunakan izin "baca dan tulis", folder tidak akan menampilkan isinya.

Apa alasannya?

Caio
sumber

Jawaban:

14

Karena Anda tidak dapat 'mengeksekusi' direktori, bit eksekusi telah digunakan dengan lebih baik. Bit eksekusi pada direktori memungkinkan Anda untuk mengakses item yang ada di dalam direktori, bahkan jika Anda tidak dapat membuat daftar isi direktori.

$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!

Dari halaman chmodmanual:

Huruf rwxXst memilih bit mode file untuk pengguna yang terpengaruh: baca (r), tulis (w), jalankan (atau cari direktori) (x) , jalankan / cari hanya jika file tersebut adalah direktori atau sudah memiliki izin eksekusi untuk beberapa pengguna (X), atur ID pengguna atau grup pada eksekusi, bendera penghapusan terbatas atau bit sticky (t).

Zaz
sumber
42

Direktori (biasanya tidak disebut folder di * nix) memiliki arti berbeda untuk bit izin daripada file normal.

Untuk direktori, tulis memungkinkan membuat file baru di dalamnya.

Baca memungkinkan Anda untuk membuat daftar file di dalamnya.

Jalankan memungkinkan Anda untuk memasukkannya dan mengakses file (atau direktori lain) di dalamnya.

Daenyth
sumber
2
Cara mudah untuk diingat adalah membayangkan mengeksekusi sebagai klik dua kali pada sesuatu. Ketika Anda mengklik dua kali direktori (atau cd) Anda memasukkan (mengeksekusi) itu.
John T
Pikiran bahwa akses tulis pada direktori tidak akan membiarkan Anda membuat file baru. Anda juga perlu menjalankan permisson pada direktori untuk melakukannya.
Matthias Braun
Apakah "mengakses file (atau direktori lain)" berarti saya dapat melihat file yaitu, daftar tetapi tidak dapat melihatnya atau saya dapat melihat file yaitu, daftar dan membacanya juga?
vadasambar
2

Jalankan izin pada direktori memungkinkan Anda untuk melewatinya, karena menggunakan sumber daya yang terkandung di dalamnya.

Ignacio Vazquez-Abrams
sumber
1

Bit "eksekusi" sebenarnya berarti "pencarian" ketika diterapkan ke direktori (dari man chmod). Ini tampaknya masuk akal karena eksekusi tidak memiliki arti untuk direktori.


sumber
0

The xsedikit di folder mengacu pencari mengindeks / direktori / listing; tidak ada yang mungkin jika Anda menjaga sedikit rendah.

Berikut ini adalah contoh penggunaannya: Jika Anda ingin memiliki pengguna dengan hak akses baca terbatas pada setiap direktori tapi rumahnya, katakanlah /home/dummy, maka Anda perlu membuat /dan /homememiliki xbit set, kalau tidak, ia bahkan tidak bisa ke direktori home-nya.

Platinum Azure
sumber