Назад | Перейти на главную страницу

Рекурсивный chmod всех каталогов vhosts httpdocs на CentOS / Plesk

Общий сервер веб-хостинга под управлением CentOS 7.8 с Plesk имеет следующую структуру каталогов для нескольких сотен виртуальных хостов:

/var/www/vhosts/domain1.com/httpdocs/
/var/www/vhosts/domain2.com/httpdocs/
/var/www/vhosts/domain3.com/httpdocs/

Папка httpdocs содержит веб-файлы в Plesk, как и стандартный каталог public_html в Apache / cPanel.

Мне нужна команда или сценарий, чтобы пройти через каждый каталог домена vhosts и рекурсивно chmod все внутри httpdocs - файлы на 644 и папки на 755 через SSH. Есть и другие каталоги непосредственно внутри /domain1.com/, /domain2.com/ и т. Д., Поэтому трогать их нельзя, только содержимое внутри httpdocs.

Поскольку вам нужно изменить все содержимое /var/www/vhosts/*/httpdocs/*, вы можете перебирать каталоги внутри /var/www/vhosts/ и для каждого элемента выполнить find для httpdocs и chmod для файлов и каталогов.

for my_hosts in /var/www/vhosts/*/httpdocs; do

#DryRun to see the changes
find $my_hosts -type f -exec ls -l {}\;
find $my_hosts -type d -exec ls -ld {}\;

#Uncomment to make the change.
#find $my_hosts -type f -exec chmod 644 {}\;
#find $my_hosts -type d -exec chmod 755 {}\;
done

Насколько я понимаю, вы хотите восстановить разрешения для случайно измененного файла / каталога.

Затем вы можете запустить это, чтобы восстановить разрешение:

$ plesk repair fs -system -y

Reff: https://talk.plesk.com/threads/ruined-all-permissions-from-root.346168/