Когда я это сделал, сидел минут 5 не понимаю что делать и куда бежать, хотелось плакать)))
У меня на сервере — ВМ установлена Debian и панелька ISP Manager Lite, но потребовалось изменить владельца одной директории, захожу в консоль, перехожу в директорию и ввожу бездумно команду:
chmod -R user:user /*
и жму Enter, после того как я увидел сообщения системы, о том что команда не может применить разрешения на файлы proc, я понял что тут что то не так.
Через пару минут легли все сайты.
Помогли друзья, специалисты хостинга itservices.su сделали мне аналогичный моему сервер с Debian той же сборки и максимально похожим набором софта внутри.
Друг написал пару скриптов:
Первый парсит разрешения всех файлов и папок в файл:
find -P / -not -path "/sys/*" -not -path "/proc/*" -printf '%u.%g|%p\n'> /perm.dmp
Дальше полученный файл подсовываем проблемной системе и запускаем скрипт, который применяет разрешения для файлов и папок из файла
for i in $(cat perm.dmp);do chown ${i%|*} "${i#*|}";done
Скрипт написан за 3 минуты и имеет ряд недостатков, но сайты поднять он мне помог)
- Проблемы с путями где есть пробел в имени файла
- Судя по всему есть ограничение если очень много строк в файле, мне пришлось разбить полученный файл на блоки по 20 000 строк
формат файла вот такой:
root.root|/ root.root|/perm.dmp root.root|/var root.root|/var/spool root.root|/var/spool/cron daemon.daemon|/var/spool/cron/atjobs daemon.daemon|/var/spool/cron/atjobs/.SEQ daemon.daemon|/var/spool/cron/atspool root.crontab|/var/spool/cron/crontabs root.crontab|/var/spool/cron/crontabs/root root.root|/var/spool/rsyslog Debian-exim.Debian-exim|/var/spool/exim4 Debian-exim.Debian-exim|/var/spool/exim4/input Debian-exim.Debian-exim|/var/spool/exim4/msglog Debian-exim.Debian-exim|/var/spool/exim4/db root.root|/var/spool/mail root.root|/var/log
Всем спасибо! Читать далее »