Dlaczego folder musi być wykonywalny?

29

Zezwolenie na pliki:

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

A dla folderów:

chmod 774 myFolder // rwxrwxr--

Jeśli użyję tylko uprawnienia do odczytu i zapisu, foldery nie będą wyświetlać ich zawartości.

Jaki jest tego powód?

Caio
źródło

Odpowiedzi:

14

Ponieważ nie można „wykonać” katalogu, bit wykonania został lepiej wykorzystany. Bit wykonania w katalogu umożliwia dostęp do elementów znajdujących się w katalogu, nawet jeśli nie można wyświetlić zawartości katalogów.

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

Z strony chmodpodręcznika:

Litery rwxXst wybierają bity trybu pliku dla dotkniętych użytkowników: odczyt (r), zapis (w), wykonanie (lub wyszukiwanie katalogów) (x) , wykonanie / wyszukiwanie tylko, jeśli plik jest katalogiem lub ma już uprawnienia do wykonywania dla niektórych użytkownik (X), ustaw ID użytkownika lub grupy na wykonanie (s), flagę ograniczonego usuwania lub lepki bit (t).

Zaz
źródło
42

Katalogi (zwykle nie są nazywane folderami w * nix) mają inne znaczenie dla bitów uprawnień niż normalne pliki.

W przypadku katalogów zapis pozwala na tworzenie nowych plików w nim zawartych.

Odczyt pozwala wyświetlić listę plików w nim zawartych.

Wykonaj pozwala na wejście i dostęp do plików (lub innych katalogów) w środku.

Daenyth
źródło
2
Łatwym sposobem na zapamiętanie jest wyobrażenie sobie wykonania jako dwukrotnego kliknięcia na czymś. Po dwukrotnym kliknięciu katalogu (lub cd) wprowadzasz go (wykonuje).
John T
Pamiętaj, że sam dostęp do zapisu w katalogu nie pozwoli ci tworzyć nowych plików. Aby to zrobić, potrzebujesz również uprawnienia do wykonania katalogu.
Matthias Braun
Czy „dostęp do plików (lub innych katalogów)” oznacza, że ​​mogę je zobaczyć, tzn. Wyświetlić listę, ale nie mogę ich wyświetlić, czy też mogę zobaczyć pliki, tj. Wyświetlić je i odczytać?
vadasambar
2

Wykonywanie uprawnień do katalogu umożliwia przechodzenie do niego, w celu korzystania z zasobów w nim zawartych.

Ignacio Vazquez-Abrams
źródło
1

Bit „wykonaj” w rzeczywistości oznacza „szukaj”, gdy jest zastosowany do katalogów (z man chmod). Wydaje się to rozsądne, ponieważ wykonanie nie ma znaczenia dla katalogu.


źródło
0

xNieco w folderze odnosi się do wyszukiwania indeksowanie / katalog / liście; żaden z nich nie jest możliwy, jeśli utrzymasz ten poziom na niskim poziomie.

Oto przykład użycia: Jeśli chcesz mieć użytkownikowi ograniczone uprawnienia do odczytu na każdym katalogu, ale jego domu, powiedzmy /home/dummy, to trzeba zrobić /i /homemieć xustawiony bit, w przeciwnym razie nie można nawet dostać się do jego katalogu domowym.

Platinum Azure
źródło