Pull to refresh

Экстренное обновление Roundcube

Спасибо netguard за то, что «выкопал» дыру. После его сообщения, об уязвимости, определенная общественность переполошилась. Спасибо cronfy который указал на GitHub.
И отдельное спасибо 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


Я вижу в этом плюсы:
  1. Разворачиваю, обновляю, проверяю и т.д. не ломая рабочей версии
  2. Обновления со стороны пользователей происходит мгновенно
  3. Не нужно вывешивать табличку «Зайдите попозже. Сайт обновляется»
  4. Чтобы откатить версию достаточно отредактировать/перезаписать ссылку


Такой способ я подсмотрел у проекта ruby deploy capistrano. Подойдет большинству.
P/s
Не забываем сменить пароли на этой машине. Т.к. любые данные могли «уплыть».
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.