Debian / Ubuntu'daki komut satırında güvenlik güncellemelerinin bir listesi nasıl alınır


26

GUI aracında güvenlik güncellemelerini içeren bir liste paketi alabilirsiniz. Bu, Debian veya Ubuntu'daki komut satırından yapılabilir mi?

Normalde neyin yükseltildiğini gösteren "apt-get upgrade" komutunu kullanabilirim, ancak hangilerinin güvenlik güncelleştirmesi olduğunu bilmek isterim.


sadece Ubuntu 14.04
Angel

Yanıtlar:


5

Katılımsız yükseltme uygulamasını kullanın.

sudo unattended-upgrade

Bu, yalnızca güvenlik güncelleştirmelerini otomatik olarak yüklemenizi sağlar, ancak gerektiğinde manuel olarak da arayabilirsiniz.


Aslında, ne yapmaya çalıştığımı düşündüğünüz ve katılımsız yükseltme denemek için yüklediğim bir şey olduğu için bu cevabı seviyorum.
Stephen Paulger

13
Aslında soruya cevap vermiyor.
reinierpost

4
Cevap buysa, soru yanlıştı. En azından, bu gelişmiş ve bir kopyası olarak buna göre düzenlenmiş ve / veya işaretlenmiş olmalıdır askubuntu.com/questions/194/...
mc0e

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

... Nagios check-apt eklentisinin aradığınız şeye benzer bekleyen güvenlik güncellemelerini saymak için kullandığı şey.


Ancak bu mermi için bash güvenlik güncellemesini bulamıyor mu?
linjunhalida

3
Bu, "xml-security-c-utils", "debian-security-support", "modsecurity-crs", "node-security", vb.
Adında

2
Bir komut satırı kontrolü için @Shnatsel, çok kolay ... yanlış bir pozitif olup olmadığını kolayca görebilirsiniz. Ayrıca işletim sisteminizin mevcut adını biliyorsanız, yazabilirsiniz grep -i xenial-securityve yanlış pozitif değeri hemen hemen sıfıra indirmelidir.
Alexis Wilke

1
@Shnatsel bu yüzden grep Debian-Securitydaha iyi bir çözüm olurdu?
Pablo A

Bu, regular;securitymevcut güncelleme sayısını almak için kullanışlıdır . -pBu güvenlik listesini almak için uygun bir yol değildir bu yüzden güncelleme için kullanılabilir paket isimler ... (en azından 16.04 üzerine) ancak düzenli ve güvenlik güncellemeleri arasında ayırım yapmaz listeye seçenek kadarıyla söyleyebilirim kullanılabilir günceller.
mattpr

10

Ubuntu'da apt-check kullanabilmeniz gerekir, bu da mevcut güvenlik güncellemelerinin sayısı ile kendi tavrınızı dolduruyor.


2
Bunu Debian veya Ubuntu'da göremiyorum.
Stephen Paulger

5
apt-check / usr / lib / update-notifier / konumunda. / Usr / lib / update-notifier / apt-check komutunu deneyin - basit bir mesaj için insan tarafından okunabilir.
u2702

2
Bunun yararlı bir şey gösterdiğine ikna olmadım. Listeyi almak için, eklemeniz gerekir --package-names( -p), ancak daha sonra düzenli güncellemeler ile güvenlik güncellemeleri arasında bir fark görünmüyor.
Auspex

5

Bu komutla bir liste alabilirsiniz:

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

2
ALL çıkışını gönderdiniz, /dev/nullböylece hiçbir şey izlemeyeceksiniz!
Auspex

Bu güvenilir bir şekilde çalışmıyor. güncellemesi gereken tüm paketleri gösterir.
Korkunç noktalı virgül

Sanırım size katılımsız yükseltme işleminin ne yapılacağını gösterirdi ve bunu yalnızca güvenlik güncelleştirmeleri yapacak şekilde yapılandırdıysanız, belki de bu tarif işe yarar. Cevap olsa da en iyi ihtimalle tamamen eksik.
mc0e

Bugün bu ihtiyacı biraz apt-check değiştirerek çözdüm. Bu özü kontrol edin: gist.github.com/thesp0nge/94f9d336a081a3fefba6ca61d787a28b
Paolo Perego

3

Bunun değiştirilmiş bir sürümü var, update-notifierek bir anahtar alır: --security-package-namesbu yalnızca güvenlikle ilgili paket adlarını veren. Bunu bir özlem olarak görüyorum (fırlatma panelindeki ilgili projede bir birleştirme isteği oluşturana kadar). O zamana kadar aşağıdaki gibi çalıştırılabilir:

Koşmak

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

Çıktı

Bu, formatın bir çıktısını verir: paket adı , yüklü sürüm ve aday sürüm :

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

Fabrizio Regini'nin yukarıdaki cevabına dayanarak.

12.04 / Kesin için:

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

14.04 / Güvenilirlik için:

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

1

Diğer cevapları okuduktan sonra bir araya gelerek bir değişken - bunun yanlış pozitif konuya cevap verdiğine ve makul derecede hafif olduğuna inanıyorum.

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

0

OP'nin sorduğu soruyu yanıtlamanın, sadece güvenlik paketlerini nasıl kuracağımı değil, paket listesini nasıl göreceğimi olduğuna inanıyorum . : Sen kullanmalıdır @topdog ait yanıta Bina bayrak paketleri duruyor /usr/lib/update-notifier/apt-check -p -p


1
bu tüm paketleri ve yalnızca güvenlik güncellemelerini listeler
confiq

apt-check Debian Jessie'de mevcut değil. Güncellenmiş Wheezy sistemlerinde kalır ancak yeni kurulumlarda artık güncelleme-notifier-ortak özelliği yoktur. Bir alternatif biliyor musunuz?
Ocak

@ jan hala orada, bir parçası olarak update-notifier-common
Auspex

@Apepex Bu paket artık Jessie'de mevcut değil. Sadece update-notifiereski olan bir geçiş paketi için var gnome-packagekit. Buraya bakınız .
jan

1
@ jan Üzgünüz, bunun için debian kelimesini kullandım. Packages.debian.org/… dosyasını aradım ve bana anlattı You have searched for files named apt-check in suite jessie, all sections, and all architectures. Found 1 results., fakat daha sonra bu sonuç için linke tıkladığınızda, size şunu söylüyorPackage not available in this suite.
Auspex

0

Bu iki komut listeye tükürecektir. Pipoyu wc -l'ye kaç tane olduğunu görmek için yazın. ;-)

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

Daha eski dağıtımlar için hala geçerlidir veya güncelleme repolarınız kapalıysa ancak güvenlik açıksa:

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

Dikkatli ol. Kök olarak çalışırken /tmp/security.list dosyasını bu şekilde oluşturursanız, bir link bağlantısına dayalı saldırıya karşı savunmasız kalırsınız.
mc0e

Bu yaklaşımı (ilk kod bloğu) Ubuntu 14.04'te bulamıyorum. Bu -oDir::Etc::Sourcelistseçenek standart havuz kümesini devre dışı bırakmıyor gibi görünüyor.
mc0e

0

@ Smin 'in cevabı temelde iyi bir yaklaşım, ama @Shnatsel tarafından belirtildiği gibi regex ile biraz gevşek.

Buna ne dersin:

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

Bu, paket adlarını yüklemek istediğiniz sürümlerle birlikte listeler. -$2Sürümleri orada istemiyorsanız, print deyimini çıkarabilirsiniz .

[Bu muhtemelen perl yerine awk kullanarak sadece biraz daha hafif yapılabilir.]


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.