Bir klasör neden çalıştırılabilir olmalıdır?


29

Dosyalar için izin:

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

Ve klasörler için:

chmod 774 myFolder // rwxrwxr--

Yalnızca "oku ve yaz" iznini kullanırsam, klasörler içeriklerini göstermez.

Bunun sebebi nedir?

Yanıtlar:


14

Bir dizini 'çalıştıramazsınız' olduğundan, yürütme biti daha iyi kullanıma konmuştur. Dizindeki yürütme biti, dizin içeriğini listelemeseniz bile dizinin içindeki öğelere erişmenizi sağlar.

$ 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!

Gönderen chmodman:

RwxXst harfleri, etkilenen kullanıcılar için dosya modu bitlerini seçer: okuma (r), yazma (w), yürütme (veya dizinleri arama) (x) , yalnızca dosya bir dizinse veya yürütme / arama için bazılarına izin verme kullanıcı (X), kullanıcı veya grup kimliğini yürütme (ler), sınırlı silme bayrağı veya yapışkan bit (t) olarak ayarlayın.


42

Dizinler (genellikle * nix içindeki klasörler olarak adlandırılmazlar) izin bitleri için normal dosyalardan farklı anlamlara gelir.

Dizinler için write, içinde yeni dosyalar oluşturmanıza olanak sağlar.

Oku, içindeki dosyaları listelemenizi sağlar.

Yürüt, girmenize ve içindeki dosyalara (veya diğer dizinlere) erişmenize olanak sağlar.


2
Hatırlamanın kolay bir yolu, bir şeye çift tıklamanın nasıl çalıştığını hayal etmektir. Dizine (ya da cd) çift ​​tıkladığınızda onu girersiniz (yürütür).
John T,

Yalnızca bir dizine yazma erişiminin yeni dosyalar oluşturmanıza izin vermeyeceğini unutmayın. Ayrıca bunu yapabilmek için dizinde execisson permisson uygulamasına ihtiyacınız vardır.
Matthias Braun

"Dosyalara (veya diğer dizinlere) eriş" demek, dosyaları görebileceğimi, yani onları listeleyebildiğimi, göremediğimi veya dosyaları görebileceğimi, yani onları listeleyip okuyabildiğim anlamına mı geliyor?
vadasambar

2

Bir dizindeki izinleri çalıştırma, içinde bulunan kaynakları kullanmak için geçiş yapmanıza izin verir.


1

"Execute" bit aslında (from man chmod) dizinlerine uygulandığında "search" anlamına gelir . Yürütmenin bir dizin için bir anlamı olmadığı için bu makul görünüyor.


0

xBir klasörde biraz indeksleme / dizin arama / listeleme anlamına gelir; Bunları düşük tutarsanız bunların hiçbiri mümkün değildir.

İşte kullanımına ilişkin bir örnek: Eğer, diyelim ki her dizinde ancak evinin üzerinde sınırlı okumak izinlerine sahip bir kullanıcı var isterseniz /home/dummy, o zaman yapmak gerekir /ve /homesahip xbit kümesi aksi halde bile onun ana dizine alınamıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.