it-swarm-eu.dev

Wie kann ich nur Sicherheitsupdates über die Befehlszeile installieren?

Sudo apt-get upgrade installiert alle Updates, nicht nur Sicherheitsupdates. Ich weiß, dass ich mit Update Manager nur wichtige Sicherheitsupdates auswählen kann. Gibt es eine Möglichkeit, dies über die Befehlszeile zu tun?

330

Das Paket nbeaufsichtigte Upgrades bietet Funktionen zum automatischen Installieren von Sicherheitsupdates.

Sie können dies verwenden, aber anstatt den automatischen Teil zu konfigurieren, können Sie ihn manuell aufrufen:

Sudo unattended-upgrade -d --dry-run
Sudo unattended-upgrade -d

Wenn Sie es stattdessen ruhig ausführen möchten:

Sudo unattended-upgrade

HINWEIS: Wenn Sie das unbeaufsichtigte Upgrade aufrufen, lassen Sie das "s" am Ende stehen.

Dies setzt voraus, dass das Paket standardmäßig installiert ist, was wahrscheinlich auch so ist. Wenn nicht, machen Sie einfach:

Sudo apt-get install unattended-upgrades

Siehe auch /usr/share/doc/unattended-upgrades/README.md.

307
blueyed

Einige Tipps zum Verwalten von Updates

Dies gilt sowohl für Debian als auch für Ubuntu. Genauere Anweisungen für Ubuntu folgen.

  • Nur Sicherheitsupdates anzeigen:

    apt-get -s dist-upgrade |grep "^Inst" |grep -i securi 
    

    oder

    Sudo unattended-upgrade --dry-run -d
    

    oder

    /usr/lib/update-notifier/apt-check -p
    
  • Alle aktualisierbaren Pakete anzeigen

    apt-get -s dist-upgrade | grep "^Inst"
    
  • Installieren Sie nur Sicherheitsupdates

    apt-get -s dist-upgrade | grep "^Inst" | 
        grep -i securi | awk -F " " {'print $2'} | 
        xargs apt-get install
    

Anmerkungen:

  • Manchmal zeigt Ubuntu Sicherheitsupdates an, als stammten sie aus dem $ release-updates-Repository. Dies ist, wie mir gesagt wurde, so, weil Ubuntu-Entwickler Sicherheitsupdates auch in das $ release-updates-Repository verschieben, um deren Verfügbarkeit zu beschleunigen.

    In diesem Fall können Sie folgendermaßen vorgehen, um nur Sicherheitsupdates anzuzeigen:

    Sudo sh -c 'grep ^deb /etc/apt/sources.list | 
        grep security > /etc/apt/sources.security.only.list'
    

    und

    apt-get -s dist-upgrade -o Dir::Etc::SourceList=/etc/apt/sources.security.only.list -o Dir::Etc::SourceParts=/dev/null  | 
        grep "^Inst" | awk -F " " {'print $2'}
    
  • Überprüfen Sie, welche Dienste nach Paketaktualisierungen neu gestartet werden müssen. Stellen Sie im Voraus fest, welche Pakete aktualisiert werden sollen, und planen Sie die Neustarts/Neustarts. Das Problem hierbei ist, dass, wenn Sie einen Dienst nicht neu starten, möglicherweise noch eine ältere Version einer Bibliothek verwendet wird (häufigster Grund), die vor der Installation eines neuen Pakets in den Speicher geladen wurde, um eine Sicherheitsanfälligkeit zu beheben, oder was auch immer.

    checkrestart -v
    

    Beachten Sie jedoch, dass checkrestart möglicherweise Prozesse auflistet, die nicht unbedingt neu gestartet werden müssen. Beispielsweise kann der PostgreSQL-Dienst eine bereits gelöschte xlog-Datei im Speicher behalten, was kein gültiger Grund für einen Neustart des Dienstes ist.

    Daher ist das folgende kleine Bash-Skript, das ich schamlos aus https://locallost.net/?p=2 gestohlen habe, eine weitere, zuverlässigere Möglichkeit, dies mit Standard-Utils zu überprüfen

    Es prüft, ob laufende Prozesse auf einem System noch gelöschte Bibliotheken verwenden, indem Kopien dieser im aktiven Speicher aufbewahrt werden.

    ps xh -o pid |
    while read PROCID; do
           grep 'so.* (deleted)$' /proc/$PROCID/maps 2> /dev/null
           if [ $? -eq 0 ]; then
                   CMDLINE=$(sed -e 's/\x00/ /g' < /proc/$PROCID/cmdline)
                   echo -e "\tPID $PROCID $CMDLINE\n"
           fi
    done
    
114
ILIV

ersetze /etc/apt/preferences durch folgendes:

Package: *
Pin: release a=lucid-security
Pin-Priority: 500

Package: *
Pin: release o=Ubuntu
Pin-Priority: 50

jetzt aktualisiert ein einfacher apt-get upgrade nur alle Sicherheitsupdates.

Warum (und wie) das funktioniert: Die Voreinstellungsdatei fixiert alle Pakete von der Ubuntu-Distribution auf Priorität 50, was sie weniger wünschenswert macht als bereits installierte Pakete. Dateien, die aus dem Sicherheitsrepository stammen, erhalten die Standardpriorität (500), sodass sie für die Installation berücksichtigt werden. Dies bedeutet, dass nur Pakete Sicherheitsupdates sind, die als wünschenswerter als die derzeit installierten angesehen werden. Weitere Informationen zum Fixieren finden Sie auf der Hilfeseite apt_preferences .

Mit der Option --target-release, die mit apt-get und aptitude (mindestens) zusammenarbeitet, können Sie eine bestimmte Distribution vorübergehend für Updates promoten, damit Sie bestimmte Releases anheften können, damit sie für ein Upgrade berechtigt sind.

Wenn Sie dies nur für Skripte verwenden möchten und nicht für das System als Standard festlegen möchten, können Sie die Regeln an einem anderen Speicherort ablegen und stattdessen Folgendes verwenden:

apt-get -o Dir::Etc::Preferences=/path/to/preferences_file upgrade

Dadurch wird apt veranlasst, nach der Voreinstellungsdatei von einem nicht standardmäßigen Speicherort aus zu suchen.

Die als Beispiel angegebene Einstellungsdatei gilt nicht für Repositorys von Drittanbietern. Wenn Sie auch diese anheften möchten, können Sie apt-cache policy verwenden, um auf einfache Weise die erforderlichen Schlüssel zum Anheften zu ermitteln.

46
Ressu

Folgendes wird in Ubuntu 14.04 LTS bestätigt.

Verwenden Sie das Paket unattended-upgrade.

Schauen Sie sich die Datei /etc/apt/apt.conf.d/50unattended-upgrades an. Es sollte oben einen Abschnitt geben, der lautet:

// Automatically upgrade packages from these (Origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
//  "${distro_id}:${distro_codename}-updates";
//  "${distro_id}:${distro_codename}-proposed";
//  "${distro_id}:${distro_codename}-backports";
};

Beachten Sie, dass standardmäßig nur unbeaufsichtigte Upgrades für Sicherheitspakete zulässig sind.

Ändern Sie die Datei /etc/apt/apt.conf.d/10periodic wie folgt:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Dadurch werden einmal täglich automatische unbeaufsichtigte Sicherheitsupgrades ausgeführt.

Führen Sie nun Folgendes manuell aus: Sudo unattended-upgrade.

Um als Probelauf zu testen, ohne etwas zu tun: Sudo unattended-upgrade --dry-run.

Quelle: https://help.ubuntu.com/14.04/serverguide/automatic-updates.html

12
vcardillo

Obwohl es ziemlich hässlich ist, können Sie alle Repositorys außer dem Sicherheits-Repository deaktivieren und dann Folgendes tun:

Sudo apt-get update && Sudo apt-get upgrade

Ich habe es nicht getestet, aber theoretisch würde es nur Aktualisierungen im Sicherheits-Repository finden und anwenden ...

5
Stephen RC
  • apt-get update: Lesen Sie einfach die Einträge im Repository - entsprechend der vorhandenen Liste. Muss überprüfen, was neu ist.
  • apt-get upgrade: Alle Updates für installierte Pakete ohne Kernelmodule. Kein Release-Update.
  • apt-get dist-upgrade: Alle Updates für installierte Pakete auch mit Kernelmodulen. Kein Release-Update.
  • apt-get mit Parameter -s: Nur Test, keine Änderungen durchgeführt.
3
fuser

Hier ist ein Skript, mit dem dies auf verschiedene Arten erreicht wird:

#!/usr/bin/env bash
set -e

# List upgradable packages
apt-get update
apt list --upgradable 2>/dev/null
# List security upgrades
test "$(apt-get upgrade -s -y)" && (apt-get upgrade -s -y)
# List upgradable apt packages then upgrade
apt-get update && apt-get upgrade -y  -V | grep '=>' | awk '{print$1}' && test "$(apt-get upgrade -y)"
0
Seth Bergman

Unter Debians verwende ich diesen Befehl nur, um Sicherheitsupdates durchzuführen:

apt-get install -y --only-upgrade $( apt-get --just-print upgrade | awk 'tolower($4) ~ /.*security.*/ || tolower($5) ~ /.*security.*/ {print $2}' | sort | uniq )
0
keypress

Ich kann weder in apt-get noch in aptitude eine Option finden, aber jemand hatte auf SuperUser das gleiche Frage . Die einzige Antwort ist:

Check and adjust /etc/apt/apt.conf.d/50unattended-upgrade. 
Did you replace 'karmic' with the code name of your Ubuntu?

Keine Antwort, ob das aber funktioniert hat.

0
Ross