Спасибо netguard за то, что «выкопал» дыру. После его сообщения, об уязвимости, определенная общественность переполошилась. Спасибо cronfy который указал на GitHub.
И отдельное спасибо Aleksander Machniak который быстро поправил код на GitHub для ветки release-0.8 (Текущая версия 0.8.6)
Патч, мне кажется логичным.
Далее инструкция для начинающих сисадминов:
В итоге, у Вас должно получится примерно так:
Рядом лежат директории с новой и старой версиями, а символическая ссылка ссылается на новую версию.
Я вижу в этом плюсы:
Такой способ я подсмотрел у проекта ruby deploy capistrano. Подойдет большинству.
P/s
Не забываем сменить пароли на этой машине. Т.к. любые данные могли «уплыть».
И отдельное спасибо Aleksander Machniak который быстро поправил код на GitHub для ветки release-0.8 (Текущая версия 0.8.6)
Патч, мне кажется логичным.
Далее инструкция для начинающих сисадминов:
- Вытягиваем ветку release-0.8
git clone https://github.com/roundcube/roundcubemail.git --branch release-0.8
- Копируем рабочую корневую roundcube в новую директорию. Например: roundcube-0.8.6
- Далее по roundcubemail/UPGRADING
./bin/installto.sh /usr/local/www/roundcube-0.8.6 и.т.д.
- После проверки кода, делаем «фит ушами»
mv roundcub roundcub-0.8.5 && ln -s roundcub-0.8.6 roundcub
В итоге, у Вас должно получится примерно так:
Рядом лежат директории с новой и старой версиями, а символическая ссылка ссылается на новую версию.
lrwxr-xr-x 1 root wheel 15 Mar 28 02:47 roundcube -> roundcube-0.8.6
drwxr-xr-x 10 root wheel 512 Mar 28 00:32 roundcube-0.8.5
drwxr-xr-x 10 root wheel 512 Mar 28 02:02 roundcube-0.8.6
Я вижу в этом плюсы:
- Разворачиваю, обновляю, проверяю и т.д. не ломая рабочей версии
- Обновления со стороны пользователей происходит мгновенно
- Не нужно вывешивать табличку «Зайдите попозже. Сайт обновляется»
- Чтобы откатить версию достаточно отредактировать/перезаписать ссылку
Такой способ я подсмотрел у проекта ruby deploy capistrano. Подойдет большинству.
P/s
Не забываем сменить пароли на этой машине. Т.к. любые данные могли «уплыть».