So erhalten Sie eine Liste der Sicherheitsupdates in der Befehlszeile von Debian / Ubuntu

26

Im GUI-Tool können Sie Listenpakete mit Sicherheitsupdates erhalten. Kann dies auf der Kommandozeile in Debian oder Ubuntu gemacht werden?

Normalerweise verwende ich "apt-get upgrade", um zu sehen, was aktualisiert wird, aber ich möchte wissen, welche Sicherheitsupdates es sind.

Stephen Paulger
quelle
nur für Ubuntu 14.04, 16.04 und 18.04 LTS: askubuntu.com/a/1128270/92504
Angel

Antworten:

5

Verwenden Sie die unbeaufsichtigte Upgrade-Anwendung.

sudo unattended-upgrade

Auf diese Weise können Sie nur Sicherheitsupdates automatisch installieren, diese können Sie jedoch bei Bedarf manuell aufrufen.

Andy H
quelle
Ich mag diese Antwort, da Sie tatsächlich darüber nachgedacht haben, was ich versuchen könnte, und ein unbeaufsichtigtes Upgrade ist etwas, das ich heute installiert habe, um es auszuprobieren.
Stephen Paulger
13
Die Frage wird jedoch nicht beantwortet.
Reinierpost
4
Wenn dies die Antwort ist, war die Frage falsch. Zumindest hat es sich weiterentwickelt und sollte dementsprechend bearbeitet und / oder als Duplikat von askubuntu.com/questions/194/…
mc0e
39
apt-get upgrade -s | grep -i security

... wird vom Nagios Check-Apt-Plugin verwendet, um ausstehende Sicherheitsupdates zu zählen, ähnlich wie Sie es suchen.

smin
quelle
Aber es kann kein bash Sicherheitsupdate für Shellshock finden?
Linjunhalida
3
Dies führt zu Fehlalarmen bei Paketen mit dem Namen "security", wie "xml-security-c-utils", "debian-security-support", "modsecurity-crs", "node-security" usw.
Shnatsel
2
@Shnatsel für eine Befehlszeilenüberprüfung, es ist sehr einfach ... Sie können leicht erkennen, ob es sich um ein falsches Positiv handelt oder nicht. Auch wenn Sie den aktuellen Namen Ihres Betriebssystems kennen, können Sie schreiben, grep -i xenial-securityund es sollte das falsche Positiv auf so ziemlich Null reduzieren.
Alexis Wilke
1
@Shnatsel grep Debian-Securitywäre also eine bessere Lösung?
Pablo A
Dies ist nützlich, um die Anzahl der regular;securityverfügbaren Updates zu ermitteln. Die -pOption, die für Updates verfügbaren Paketnamen aufzulisten, unterscheidet jedoch nicht zwischen regulären und Sicherheitsupdates (mindestens am 16.04.). Daher ist dies keine praktikable Methode, um eine Liste der verfügbaren Sicherheitsupdates zu erhalten, soweit ich das beurteilen kann.
27.
10

Unter Ubuntu sollten Sie in der Lage sein, apt-check zu verwenden. Es ist das Programm, das Ihre Motd mit der Anzahl der verfügbaren Sicherheitsupdates auffüllt.

Platzhirsch
quelle
2
Ich kann das auf Debian oder Ubuntu nicht sehen.
Stephen Paulger
5
apt-check befindet sich in / usr / lib / update-notifier /. Versuchen Sie / usr / lib / update-notifier / apt-check - menschlich lesbar für eine einfache Nachricht.
u2702
2
Ich bin nicht überzeugt, dass das irgendetwas Sinnvolles zeigt. Um die Liste zu erhalten, müssen Sie --package-names( -p) hinzufügen , aber dann scheint es nicht zwischen regelmäßigen Updates und Sicherheitsupdates zu unterscheiden.
Auspex
5

Mit diesem Befehl können Sie eine Liste erhalten:

sudo unattended-upgrade --dry-run -d 2> /dev/null | grep 'Checking' | awk '{ print $2 }'
Fabrizio Regini
quelle
2
Sie haben ALLE Ausgaben an gesendet, /dev/nulldamit Sie nichts begreifen!
Auspex
Dies scheint bei Trusty nicht zu funktionieren. Es werden alle Pakete angezeigt, die stattdessen aktualisiert werden müssen.
Gefürchtetes Semikolon
Ich vermute, es würde Ihnen zeigen, was ein unbeaufsichtigtes Upgrade bewirken würde, und wenn Sie es so konfiguriert hätten, dass es nur Sicherheitsupdates enthält, könnte dieses Rezept funktionieren. Die Antwort ist jedoch bestenfalls absolut unvollständig.
mc0e
Heute habe ich dieses Problem gelöst, indem ich ein wenig Apt-Check durchgeführt habe. Überprüfen Sie diesen Inhalt: gist.github.com/thesp0nge/94f9d336a081a3fefba6ca61d787a28b
Paolo Perego
3

Ich habe eine modifizierte Version update-notifier, die einen zusätzlichen Schalter benötigt: --security-package-namesder nur die sicherheitsrelevanten Paketnamen ausgibt. Ich habe es als eine Zusammenfassung (bis ich eine Zusammenführungsanforderung in dem relevanten Projekt in Launchpad erstelle). Bis dahin kann es wie folgt ausgeführt werden:

Lauf

curl -s https://gist.githubusercontent.com/ahmadnazir/c2444d6b09fd7bb4963a13bc577d92a3/raw/0231b94a4e46abe0a5959de5f84feda76ad2eb9d/apt-check.py \
  | python /dev/stdin --security-package-names \
  | column -t -s , \
  | sort

Ausgabe

Dies ergibt eine Ausgabe des Formats: Paketname , installierte Version und Kandidatenversion :

...
thunderbird                          1:38.6.0+build1-0ubuntu0.14.04.1     1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-gnome-support            1:38.6.0+build1-0ubuntu0.14.04.1     1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-locale-en                1:38.6.0+build1-0ubuntu0.14.04.1     1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-locale-en-us             1:38.6.0+build1-0ubuntu0.14.04.1     1:38.8.0+build1-0ubuntu0.14.04.1
...
mandark
quelle
3

Gestützt auf die Antwort von Fabrizio Regini.

Für 12.04 / Präzise:

sudo unattended-upgrade --dry-run -d 2>&1 /dev/null | grep 'Checking' | grep security | awk '{ print $2 }'

Für 14.04 / Trusty:

sudo unattended-upgrade --dry-run -d | grep 'Checking' | grep security | awk '{ print $2 }'
blazerw
quelle
1

Und eine Variante, die nach dem Lesen der anderen Antworten zusammengewürfelt ist - ich glaube, dass dies das falsch-positive Problem befriedigt und einigermaßen leichtgewichtig ist.

sudo unattended-upgrade --dry-run -d 2>/dev/null  | awk '/Checking/ && /archive:..*-security. / {print $2}'
basteln
quelle
0

Ich glaube, dass es bei der Beantwortung der Frage, die das OP stellt, darum geht, wie die Liste der Pakete angezeigt wird, und nicht darum, wie nur Sicherheitspakete installiert werden. Aufbauend auf der Antwort von @topdog sollten Sie verwenden: /usr/lib/update-notifier/apt-check -p Wo die -pFlagge für Pakete steht

Alonisser
quelle
1
Dies listet alle Pakete und nicht nur Sicherheitsupdates auf
confiq
apt-check scheint in Debian Jessie nicht verfügbar zu sein. Es bleibt auf aktualisierten Wheezy-Systemen, aber bei Neuinstallationen ist der Update-Notifier-Common nicht mehr vorhanden. Kennen Sie eine Alternative?
Januar
@jan es ist immer noch da, als Teil der update-notifier-common
Auspex
@Auspex Dieses Paket existiert in Jessie nicht mehr. Es gibt nur update-notifierwas für ein veraltetes Übergangspaket gnome-packagekit. Sehen Sie hier .
Januar
1
@jan Entschuldigung, ich habe Debians Wort dafür genommen. Ich habe nach der Datei packages.debian.org/… gesucht und sie hat mir Bescheid gegeben You have searched for files named apt-check in suite jessie, all sections, and all architectures. Found 1 results., aber wenn Sie dann tatsächlich auf den Link für dieses Ergebnis klicken, heißt esPackage not available in this suite.
Auspex,
0

Diese beiden Befehle werden die Liste ausspucken. Pipe to wc -l, um zu sehen, wie viele dahinter sind. ;-)

grep security /etc/apt/sources.list > /tmp/security.list
sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -s

Gilt weiterhin für ältere Distributionen oder wenn Sie Update-Repos deaktiviert haben, aber die Sicherheit aktiviert ist:

sudo apt-get upgrade -s| grep ^Inst |grep Security 
Flackerfliege
quelle
Achtung. Wenn Sie /tmp/security.list auf diese Weise erstellen, während Sie als Root ausgeführt werden, sind Sie anfällig für einen Symlink-basierten Angriff.
mc0e
Ich kann diesen Ansatz (den ersten Codeblock) unter Ubuntu 14.04 nicht erreichen. Die -oDir::Etc::SourcelistOption scheint den Standardsatz von Repositorys nicht zu deaktivieren.
mc0e
0

Ich denke, die Antwort von @smin ist im Grunde genommen ein guter Ansatz, aber ein bisschen locker mit der Regex, wie von @Shnatsel bemerkt.

Wie wäre es damit:

apt-get upgrade -q --dry-run \
| perl -ne 'm/^Inst (\S+) \S+ \(([^\)]+) Debian-Security:8/ && print "$1-$2\n"'

Dies listet die Paketnamen zusammen mit den Versionen auf, die Sie installieren möchten. Sie können -$2die Druckanweisung entfernen, wenn Sie die Versionen dort nicht möchten.

[Dies könnte wahrscheinlich nur ein wenig leichter gemacht werden, indem awk anstelle von perl verwendet wird.]

mc0e
quelle