Я могу откатывать Кв. - получают обновление, если что-то идет не так, как надо?

Если Вы имеете root затем можно выполнить взломщика пароля против /etc/shadow (принимающий локальные пароли и не LDAP или Kerberos, и т.д.). Это не может быть эффективно, если они выбирают хорошие пароли, и система настроена для использования хеширования сильного пароля. Но системные пароли не хранятся в простом тексте; пароли не непосредственно доступны даже root.

53
12.06.2013, 03:20
3 ответа

Мне только что нужно было придумать ответ на этот вопрос, потому что последнее обновление apt-get на сервере Debian сделало это невозможным чтобы загрузить самое последнее ядро ​​за пределами busybox, не смонтируя корневой раздел zfs.По крайней мере, более старое ядро ​​все еще могло загружаться, но было несовместимо с другим программным обеспечением. Отсюда необходимость отката.

Краткий ответ - вы можете использовать следующую команду:

$ apt-get -s install $(apt-history rollback | tr '\n' ' ')

если она делает то, что вы хотите, удалите -s и запустите ее снова. Вот шаги, которые я предпринял, чтобы это работало правильно:

  1. Я временно обрезал свой /var/log/dpkg.log , чтобы оставить только сегодняшнее обновление

  2. Я установил крошечный скрипт apt -history из здесь в ~ / .bashrc и запустил

     $ apt-history rollback> rollback.txt 
     ... {{1} } libzfs2: amd64 = 0.6.4-4 ~ wheezy 
    zfsutils: amd64 = 0.6.4-4 ~ wheezy 
    zfs-initramfs: amd64 = 0.6.4-4 ~ wheezy {{1} } ... 
     
  3. Это предоставляет красиво отформатированный список пакетов с версией для отката, загружая его в apt-get install . При необходимости обрежьте этот список в текстовом редакторе, а затем запустите (сначала с помощью -s для пробного запуска):

     $ apt-get -s install $ (cat rollback.txt | tr '\ n '' ') 
     $ apt-get install $ (cat rollback.txt | tr' \ n '' ') 
     

Apt предупредит об ожидаемом понижении версии. Чтобы предотвратить перезапись этого отката при следующем обновлении, пакеты необходимо закрепить до тех пор, пока исходная проблема не будет решена. Например, с: apt-mark hold zfsutils libzfs2 ...


function apt-history(){
    case "$1" in
      install)
            cat /var/log/dpkg.log | grep 'install '
            ;;
      upgrade|remove)
            cat /var/log/dpkg.log | grep $1
            ;;
      rollback)
            cat /var/log/dpkg.log | grep upgrade | \
                grep "$2" -A10000000 | \
                grep "$3" -B10000000 | \
                awk '{print $4"="$5}'
            ;;
      *)
            cat /var/log/dpkg.log
            ;;
    esac
}
47
27.01.2020, 19:33

Файлы журнала /var/log/apt/history.log и /var/log/apt/term.log самые близкие вещи, доступные Вашему описанию:

Я предполагаю, что мог быть некоторый сценарий, который мог сохранить список недавно установленного пакета и их предыдущего номера версии

history.log дает сводный список каждого действия это apt берет в следующем формате:

Start-Date: 2013-06-21  16:05:05
Commandline: apt-get install rdiff-backup
Install: python-pyxattr:i386 (0.5.0-3, automatic), rdiff-backup:i386 (1.2.8-6), python-pylibacl:i386 (0.5.0-3, automatic
), librsync1:i386 (0.9.7-7, automatic)
End-Date: 2013-06-21  16:05:42

В частности, это дает список недавно установленных пакетов, или удаленных пакетов. Кроме того, term.log шоу, что на самом деле появилось на терминале во время действия, так, чтобы показал старые и новые версии пакетов. Случайная выборка от моего history.log:

Preparing to replace gnupg 1.4.10-4 (using .../gnupg_1.4.10-4+squeeze1_i386.deb) ...
Unpacking replacement gnupg ...
Processing triggers for install-info ...
Processing triggers for man-db ...
Processing triggers for doc-base ...
Processing 1 changed doc-base file(s)...
Registering documents with scrollkeeper...
Setting up gnupg (1.4.10-4+squeeze1) 

Попытка откатывать apt автоматически не рекомендуется, но если Вы используете журналы, затем должно быть возможно сделать это вручную, если неудавшееся действие не повредило что-то, что вмешивается в aptдействия, например, непоследовательная dpkg база данных. В этом случае необходимо будет решить проблему перед продолжением.

7
27.01.2020, 19:33

Нет, склонный не делает это легким.

Наилучшим вариантом является некоторый тип снимка. Или файловая система создает снимки через lvm/zfs/btrfs или снимки экземпляра при использовании VM некоторого вида.

Единственная другая опция состоит в том, чтобы взять материально-технические ресурсы установленных пакетов (dpkg-l) прежде и после. Если бледный для "откатывания" Вас необходимо явно установить предыдущую версию.

4
27.01.2020, 19:33

Теги

Похожие вопросы