Linux - Как рекурсивно chmod папка?

6994
Black

Как я могу рекурсивно chmod все внутри папки?

Например, у меня есть папка, varкоторая содержит много подпапок и файлов.

Как я могу применить chmod 755 рекурсивно к этой папке и всему ее содержимому?

1

1 ответ на вопрос

7
slhck

Пожалуйста, обратитесь к руководству ( man chmod):

-R, --recursive change files and directories recursively 

chmod -R 755 /path/to/directory будет выполнять то, что вы хотите.

Тем не мение…

  1. Вы обычно не хотите 755 всех файлов ; они должны быть 644, так как они часто не должны быть исполняемыми. Следовательно, вы можете сделать find /path/to/directory -type d -exec chmod 755 {} \;только для изменения разрешений каталога. Используйте -type fи, chmod 644чтобы применить разрешения к файлам.

  2. Это перезапишет любые существующие разрешения. Это не очень хорошая идея - для /varэтой папки уже установлены правильные разрешения, установленные системой. Например, для некоторых каталогов /varтребуется 775 разрешений (например, /var/log).

Поэтому, прежде чем делать sudo chmod- особенно в системных папках - сделайте паузу и подумайте, действительно ли это необходимо.

Когда биты разрешения _adding_ разрешены, прописные буквы `[augo] + X` поддерживаются только для добавления + x, если объект уже исполняемый. grawity 5 лет назад 3
Это не папка var из linux, а с моего сайта. Но все же хороший намек! Black 5 лет назад 0
@ Чёрный Конечно, я просто хотел добавить большую оговорку. В частности, для веб-сайтов (большинство CMS, таких как WordPress или Drupal) этого хотят, разрешения каталогов и файлов должны быть разными по соображениям безопасности, см., Например, [здесь] (https://codex.wordpress.org/Changing_File_Permissions) для WordPress. slhck 5 лет назад 1
@grawity - я не могу поверить, что раньше не замечал `+ X`: это очень полезно для нескольких файлов, будь то` -R`, маска файла или для обработки файлов, найденных с помощью `find`. Действительно полезный совет. AFH 5 лет назад 0