Ответ 1
Каталогам требуется разрешение на выполнение, чтобы просмотреть их содержимое.
Из http://content.hccfl.edu/pollock/AUnix1/FilePermissions.htm
Вы можете думать о чтении и выполнении в каталогах таким образом: каталоги - это файлы данных, содержащие две части информации для каждого файла внутри, имя файла и его номер inode. Для доступа к именам файлов в каталоге требуется разрешение на чтение. Для доступа к inodes файлов в каталоге требуется разрешение Execute (a.k.a. search), если вы уже знаете имя файла.
При изменении разрешения каталога на 644 вы не сможете прочитать файлы в этом каталоге, хотя вы можете прочитать этот каталог, чтобы увидеть его.
Вам нужно сделать это:
$ chmod -R 0755 .
Лучше всего использовать разрешение строки, если вы просто хотите отключить
В противном случае вы можете увидеть каталог, но не получить доступ к информации в этом каталоге.
Возможно, вам лучше использовать относительные разрешения вместо абсолютных разрешений:
$ chmod -R go-w .
Удалит права на запись из группы и другие, но не коснется разрешения на выполнение.
Вы также можете использовать find
только для установки каталогов или просто для установки файлов:
$ find . -type d -exec chmod 755 {} \;
Это коснется только каталогов, установит разрешение на чтение и выполнение всех каталогов и установит права на запись для владельца. Таким образом, вы не устанавливаете разрешение на выполнение для самих файлов.