Общий сервер веб-хостинга под управлением 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/