Cara mendapatkan daftar pembaruan keamanan di baris perintah di Debian / Ubuntu


26

Di alat GUI Anda bisa mendapatkan daftar paket dengan pembaruan keamanan. Apakah ini dapat dilakukan pada baris perintah di Debian atau Ubuntu?

Biasanya saya mungkin menggunakan "apt-get upgrade" yang akan menunjukkan kepada saya apa yang sedang ditingkatkan, tetapi saya ingin tahu mana yang merupakan pembaruan keamanan.


hanya untuk Ubuntu 14.04, 16.04 dan 18.04 LTS: askubuntu.com/a/1128270/92504
Angel

Jawaban:


5

Gunakan aplikasi peningkatan tanpa pengawasan.

sudo unattended-upgrade

Ini memungkinkan Anda menginstal hanya pembaruan keamanan secara otomatis, tetapi Anda dapat memanggilnya secara manual jika diperlukan.


Saya suka jawaban ini karena Anda benar-benar berpikir tentang apa yang mungkin saya coba lakukan dan upgrade tanpa pengawasan adalah sesuatu yang saya instal hari ini untuk dicoba.
Stephen Paulger

13
Itu sebenarnya tidak menjawab pertanyaan.
reinierpost

4
Jika ini jawabannya, maka pertanyaannya salah. Paling tidak, itu berevolusi, dan harus diedit sesuai dan / atau ditandai sebagai duplikat dari askubuntu.com/questions/194/…
mc0e

39
apt-get upgrade -s | grep -i security

... adalah apa yang digunakan plugin check-apt Nagios untuk menghitung pembaruan keamanan yang tertunda yang mirip dengan yang Anda cari.


Tetapi tidak dapat menemukan pembaruan keamanan bash untuk shellshock?
linjunhalida

3
Ini memberikan false positive pada paket dengan "security" dalam namanya, seperti "xml-security-c-utils", "debian-security-support", "modsecurity-crs", "node-security", dll.
Shnatsel

2
@ Shnatsel untuk pemeriksaan baris perintah, sangat mudah ... Anda dapat dengan mudah melihat apakah itu positif palsu atau tidak. Juga jika Anda tahu nama OS Anda saat ini, Anda dapat menulis grep -i xenial-securitydan itu akan mengurangi false positive menjadi hampir nol.
Alexis Wilke

1
@ Shnatsel jadi grep Debian-Securityakan menjadi solusi yang lebih baik?
Pablo A

Ini berguna untuk mendapatkan jumlah regular;securitypembaruan yang tersedia. Namun, -popsi untuk mencantumkan nama paket yang tersedia untuk pembaruan tidak membedakan antara pembaruan reguler dan keamanan (setidaknya pada 16.04) ... jadi ini bukan cara yang layak untuk mendapatkan daftar pembaruan keamanan yang tersedia sejauh yang saya tahu.
mattpr

10

Di ubuntu Anda harus dapat menggunakan apt-check, itu yang mengisi motd Anda dengan jumlah pembaruan keamanan yang tersedia.


2
Saya tidak bisa melihatnya di debian atau ubuntu.
Stephen Paulger

5
apt-check ada di / usr / lib / update-notifier /. Coba / usr / lib / update-notifier / apt-check --human-readable untuk pesan langsung.
u2702

2
Saya tidak yakin itu menunjukkan sesuatu yang bermanfaat. Untuk mendapatkan daftar, Anda perlu menambahkan --package-names( -p), tetapi tampaknya tidak membedakan antara pembaruan reguler dan pembaruan keamanan.
Auspex

5

Anda bisa mendapatkan daftar dengan perintah ini:

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

2
Anda mengirim SEMUA output ke /dev/nullsehingga Anda tidak akan mendapatkan apa-apa!
Auspex

Ini sepertinya tidak bekerja dengan amanah. ini menunjukkan semua paket yang perlu diperbarui.
Titik koma yang ditakuti

Saya kira itu akan menunjukkan kepada Anda apa yang akan dilakukan peningkatan tanpa pengawasan, dan jika Anda mengonfigurasinya untuk hanya melakukan pembaruan keamanan, mungkin resep ini akan berhasil. Namun jawabannya adalah sangat tidak lengkap.
mc0e

Hari ini saya menyelesaikan kebutuhan ini dengan memodifikasi sedikit apt-check. Periksa intisari ini: gist.github.com/thesp0nge/94f9d336a081a3fefba6ca61d787a28b
Paolo Perego

3

Saya memiliki versi modifikasi update-notifieryang membutuhkan sakelar tambahan: --security-package-namesyang hanya menampilkan nama paket terkait keamanan. Saya memilikinya sebagai intisari (sampai saya membuat permintaan penggabungan dalam proyek yang relevan di launchpad). Sampai saat itu dapat dijalankan sebagai berikut:

Menjalankan

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

Keluaran

Ini memberikan output format: nama paket , versi yang diinstal , dan versi kandidat :

...
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
...

3

Berdasarkan jawaban Fabrizio Regini di atas.

Untuk 12,04 / Tepat:

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

Untuk 14,04 / Terpercaya:

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

1

Dan sebuah varian musnah bersama setelah membaca tanggapan lain - saya percaya ini untuk memenuhi masalah positif palsu, dan cukup ringan.

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

0

Saya percaya bahwa Menjawab pertanyaan yang ditanyakan OP adalah bagaimana melihat Daftar paket, dan bukan bagaimana menginstal paket keamanan saja. Membangun jawaban dari @topdog Anda harus menggunakan: /usr/lib/update-notifier/apt-check -p Di mana -pbendera adalah singkatan dari paket


1
ini mencantumkan semua paket dan tidak hanya pembaruan keamanan
confiq

apt-check sepertinya tidak tersedia di Debian Jessie. Tetap pada sistem Wheezy yang diperbarui tetapi instalasi baru tidak memiliki pembaruan-notifier-umum lagi. Apakah Anda tahu alternatifnya?
jan

@jan itu masih di sana, sebagai bagian dari update-notifier-common
Auspex

@Auspex Paket itu tidak ada lagi di Jessie. Hanya ada update-notifierpaket transisi yang sudah usang untuk gnome-packagekit. Lihat di sini .
Januari

1
@jan Maaf, saya mengambil kata debian untuk itu. Saya mencari file, packages.debian.org/... dan itu memberi tahu saya You have searched for files named apt-check in suite jessie, all sections, and all architectures. Found 1 results., tetapi kemudian ketika Anda benar-benar mengklik tautan untuk hasil itu, ia memberi tahu AndaPackage not available in this suite.
Auspex

0

Dua perintah ini akan mengeluarkan daftar. Pipa ke wc -l untuk melihat berapa banyak yang ada di belakang. ;-)

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

Masih berlaku untuk distro yang lebih lama atau jika Anda menonaktifkan repo, tetapi keamanan aktif:

sudo apt-get upgrade -s| grep ^Inst |grep Security 

Hati-hati. Jika Anda menghasilkan /tmp/security.list cara ini saat berjalan sebagai root, maka Anda rentan terhadap serangan berbasis symlink.
mc0e

Saya tidak bisa mendapatkan pendekatan ini (blok kode pertama) di Ubuntu 14.04. The -oDir::Etc::Sourcelistpilihan tampaknya tidak menonaktifkan set standar repositori.
mc0e

0

Saya pikir jawaban @min pada dasarnya adalah pendekatan yang baik, tetapi agak longgar dengan regex, seperti dicatat oleh @Shnatsel.

Bagaimana dengan ini:

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

Ini mencantumkan nama paket bersama dengan versi yang ingin Anda instal. Anda dapat -$2mengeluarkan pernyataan cetak jika Anda tidak menginginkan versi-versi di sana.

[Ini mungkin bisa dibuat sedikit lebih ringan-berat dengan menggunakan awk, bukan perl]


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.