Как мне изменить все файлы на 644 и все папки на 755 с помощью chmod
из командной строки linux
? (Терминал)
Измените права всех файлов и папок каталога на 644/755
Ответ 1
Одним из подходов может быть использование find:
для каталогов
find /desired_location -type d -print0 | xargs -0 chmod 0755
для файлов
find /desired_location -type f -print0 | xargs -0 chmod 0644
Ответ 2
Самый простой способ это сделать:
chmod -R u+rwX,go+rX,go-w /path/to/dir
что в основном означает:
к ch
Анж файлы mod
эс -R
ecursively давая:
-
u
Ser:r
EAD,w
обрядовых и еX
разрешений ecute, -
g
Роап иo
Ther пользователей:r
EAD и еX
разрешения ecute, но не-w
разрешение обряда.
Обратите внимание, что X
сделает каталог исполняемым, но не файлом, если он не доступен для поиска/выполнения.
+X
- сделать каталог или файл доступным для поиска/исполнения всеми, если он уже доступен для поиска/исполнения кем-либо.
Пожалуйста, проверьте man chmod
для более подробной информации.
См. Также: Как выполнить chmod для всех каталогов, кроме файлов (рекурсивно)? в SU
Ответ 3
Самый короткий, который я мог бы придумать, это:
chmod -R a=r,u+w,a+X /foo
который работает на GNU/Linux, и я верю в Posix вообще (из моего чтения: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html).
Что это такое:
- Установить файл/каталог в r__r__r__ (0444)
- Добавьте w для владельца, чтобы получить rw_r__r__ (0644)
- Установите для всех всех, если каталог (0755 для каталога, 0644 для файла).
Важно, что разрешение шага 1 очищает все исполняемые биты, поэтому шаг 3 только добавляет обратно исполняемые биты для каталогов (никогда не файлы). Кроме того, все три этапа выполняются до того, как каталог будет рекурсирован (так что это не эквивалентно, например,
chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo
так как a = r удаляет x из каталогов, поэтому chmod не может их перезаписывать.)
Ответ 4
Это сработало для меня:
find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;
Ответ 5
Проще всего запомнить две операции:
chmod -R 644 dirName
chmod -R +X dirName
Символ + X влияет только на каталоги.
Ответ 6
Сделайте оба за один проход с помощью:
find -type f ... -o -type d ...
Как и в, найдите тип f ИЛИ тип d и сделайте первый... для файлов, а второй... для dirs. В частности:
find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +
Оставьте кнопку --changes
, если вы хотите, чтобы она работала тихо.
Ответ 7
На https://help.directadmin.com/item.php?id=589 пишут:
Если вам нужен быстрый способ восстановить данные public_html на 755 для каталогов и 644 для файлов, то вы можете использовать что-то вроде этого:
cd /home/user/domains/domain.com/public_html
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
Я проверил и... это работает!
Ответ 8
Это тоже может работать:
chmod -R 755 * // All files and folders to 755.
chmod -R 644 *.* // All files will be 644.