Как выставить права на папки 755 и права на файлы 644

Как выставить права на папки 755 и права на файлы 644

Полезные команды когда много папок, а особенно если они вложены друг в друга(например для хостинга), тогда поможет вам такие команды:

sh
2 lines

$ sudo find dir/ type d exec chmod 755 {} ;
$ sudo find dir/ type f exec chmod 644 {} ;

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Для шаред-хостинга ( если есть папка public_html) нужно выполнить:

sh
2 lines

# find ~/public_html -type f -exec chmod 0644 {} ;
# find ~/public_html -type d -exec chmod 0755 {} ;

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

права на файлы и папки

Но предполагаю что следующий метод будет работать на большом количестве файлов (папок) быстрей:

sh
2 lines

# find . -type d ! -perm 755 -exec chmod 755 {} ;
# find . -type f ! -perm 644 -exec chmod 644 {} ;

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

«.» означает поиск и замена прав в текущей директории.

Тест показал следующие данные.

Тест с папками:

sh
9 lines

# time find . -type d ! -perm 755 -exec chmod 755 {} ;
real 0m1.976s
user 0m0.306s
sys 0m1.659s
# time find . -type d -exec chmod 755 {} ;
real 1m21.622s
user 0m10.806s
sys 1m4.141s

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Тест с файлами:

sh
9 lines

# time find . -type f ! -perm 644 -exec chmod 644 {} ;
real ·0m1.967s
user 0m0.311s
sys · 0m1.655s
# time find . -type f -exec chmod 644 {} ;
real 10m15.701s
user 1m19.470s
sys 7m59.427s

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Что и требовалось доказать! Собственно, оба варианта используют одинаковое количество операций для поиска и замены прав на файлы и папки. Но есть одно но, запись идет дольше чем чтение, по этому вывод очевиден.

Вот еще одна вариация:

sh
2 lines

# find . -type f -exec chmod 644 {} +
#·find . -type d -exec chmod 755 {} +

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Тема «Как выставить права на папки 755 и права на файлы 644» раскрыта полностью, надеюсь понятно выполнения команд.

Было ли это полезно?

1 / 0