Выполните бит для папок, но не файлов

У меня есть папка под названием Фильмы с подпапками по имени Movie1, Movie2 и т.д. и затем фильм в том подкаталоге. Пример ниже:

 Movies:
  Movie1
     film.whatever1
  Movie2
     film.whatever1
  Movie3
     film.whatever1
  Movie4
     film.whatever1
  Movie5
     film.whatever1

Я хочу полномочия быть 755 для каталогов так, чтобы любой мог перейти вниз к папкам Movie1-5 (единственная причина, которая это 755, а не 744 то, потому что выполнить бит требуется, чтобы изменяться в каталог). Но я хочу, чтобы все film.whatever1-5 файлы были только для чтения. Я не могу ни за что в жизни выяснить, возможно ли это.

Я пытался сделать это использование команды setfacl с верхним регистром X как показано ниже:

 setfacl -R -d -m u::rwx Movies
 setfacl -R -d -m g::r-X Movies
 setfacl -R -d -m o::r-X Movies

 setfacl -R -m u::rwx Movies
 setfacl -R -m g::r-X Movies
 setfacl -R -m o::r-X Movies

Результат состоял в том, что это изменило папку и файлы ОБОИМ быть исполняемым файлом. Это - очень раздражающая проблема, которую я должен решить.

1
задан 3 February 2019 в 19:22

1 ответ

Можно использовать find выполнять различные команды на регулярных файлах и каталогах путем фильтрации их с -type опция. Это работает рекурсивно на всем внутри ./Movies:

# all directories become 755 (rwx r-x r-x):
find ./Movies -type d -exec chmod 755 '{}' \;

# all files become 644 (rw- r-- r--):
find ./Movies -type f -exec chmod 644 '{}' \;
3
ответ дан 3 December 2019 в 07:21

Другие вопросы по тегам:

Похожие вопросы: