Как я могу рекурсивно установить разрешения только для чтения?

14

У меня очень большой и глубокий каталог. Я хотел бы сделать все это только для чтения. Проблема, я думаю, я должен различать файлы (которые получат a=r) и каталоги (которые получат a=rx).

Как я могу это сделать?

Дэвид Б
источник
Я только что нашел это: chmod a=rXчто решает мою проблему. От man: (X)execute/search only if the file is a directory or already has execute permission for some user
Дэвид Б
Если это должно быть ответом, то это должен быть ответ.
Игнасио Васкес-Абрамс

Ответы:

13

Я только что нашел это: chmod a=rXчто решает мою проблему. От мужчины: (X) execute/search only if the file is a directory or already has execute permission for some user.

Дэвид Б
источник
7
  1. chmodпринимает режим X, который устанавливает только xкаталоги.a=X

  2. Вы также можете просто удалить разрешение на запись: a-w

user1686
источник
3
+1 за вариант №2, самый логичный путь
Маттео Рива
3
+1 также для варианта 2, но -0,5 за неправильное понимание значения заглавной буквы X в chmod
Даг Харрис
3

Приведенные выше предложения не работают для меня, все папки были установлены только для чтения.
Коллега дал мне это, которое работает:

find . -type f -exec chmod a-w {} \;
Странный Эрик Полсен
источник
1
find somepath \( -type f -exec chmod a=r {} \; \) -o \( -type d -exec chmod a=rx {} \; \)
Игнасио Васкес-Абрамс
источник