डेबियन / उबंटू में कमांड लाइन पर सुरक्षा अपडेट की सूची कैसे प्राप्त करें


26

GUI टूल में आपको सुरक्षा अपडेट के साथ एक सूची पैकेज मिल सकता है। यह डेबियन या उबंटू में कमांड लाइन पर किया जा सकता है?

आम तौर पर मैं "एप्ट-गेट अपग्रेड" का उपयोग कर सकता हूं जो मुझे दिखाएगा कि क्या अपग्रेड किया जा रहा है, लेकिन मैं जानना चाहूंगा कि कौन से सुरक्षा अपडेट हैं।


सिर्फ Ubuntu 14.04, 16.04 और 18.04 LTS के लिए: askubuntu.com/a/1128270/92504
एंजेल

जवाबों:


5

अप्राप्य-अपग्रेड एप्लिकेशन का उपयोग करें।

sudo unattended-upgrade

यह आपको केवल सुरक्षा अद्यतन स्वचालित रूप से स्थापित करने देता है, लेकिन यदि आवश्यक हो तो आप इसे मैन्युअल रूप से कॉल कर सकते हैं।


मुझे यह उत्तर पसंद है जैसा कि आपने वास्तव में सोचा है कि मैं क्या करने की कोशिश कर रहा हूं और अनुपयोगी-अपग्रेड कुछ ऐसा है जिसे मैंने आज करने के लिए स्थापित किया है।
स्टीफन पॉलगर

13
हालांकि यह वास्तव में सवाल का जवाब नहीं है।
रीस्टोरियरपोस्ट

4
अगर यह जवाब है, तो सवाल गलत था। कम से कम, यह विकसित हुआ, और तदनुसार संपादित किया जाना चाहिए और / या askubuntu.com/questions/194/… के
mc0e

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

... वह क्या है जो Nagios चेक-इन प्लगइन का उपयोग लंबित सुरक्षा अद्यतनों को गिनने के लिए करता है, जो आपके लिए देख रहे हैं के समान है।


लेकिन यह शेलशॉक के लिए बैश सिक्योरिटी अपडेट नहीं पा सकता है?
लिनजुनहलिडा

3
इस तरह के "एक्सएमएल-सुरक्षा-ग-utils", "डेबियन-सुरक्षा-समर्थन", "modsecurity-सीआरएस" "नोड सुरक्षा", आदि के रूप में "सुरक्षा" के नाम पर साथ पैकेज पर झूठे सकारात्मक, देता है
Shnatsel

2
कमांड लाइन की जांच के लिए @Shanatsel, यह बहुत आसान है ... आप आसानी से देख सकते हैं कि यह झूठी सकारात्मक है या नहीं। यदि आप अपने OS का वर्तमान नाम जानते हैं, तो आप लिख सकते हैं grep -i xenial-securityऔर यह गलत सकारात्मक को बहुत अधिक शून्य तक कम कर सकता है।
एलेक्सिस विल्के

1
@Shanatsel तो grep Debian-Securityएक बेहतर समाधान होगा?
पाब्लो ए

यह regular;securityउपलब्ध अपडेट की संख्या प्राप्त करने के लिए उपयोगी है। -pअद्यतन के लिए उपलब्ध पैकेज नामों को सूचीबद्ध करने का विकल्प हालांकि नियमित और सुरक्षा अपडेट के बीच अंतर नहीं करता है (कम से कम 16.04 पर) ... इसलिए जहां तक ​​मैं बता सकता हूं सुरक्षा अद्यतन की एक सूची प्राप्त करने का यह एक व्यवहार्य तरीका नहीं है।
मैटर्स

10

उबंटू पर आपको एप्ट-चेक का उपयोग करने में सक्षम होना चाहिए, यह वह है जो आपके motd को उपलब्ध सुरक्षा अद्यतनों की संख्या से आबाद करता है।


2
मैं इसे डेबियन या ubuntu पर नहीं देख सकता।
स्टीफन पॉलगर

5
apt-check / usr / lib / update-notifier / में है। सीधा संदेश के लिए प्रयास करें / usr / lib / update-notifier / apt-check-human- पठनीय।
u2702

2
मुझे यकीन नहीं है कि कुछ भी उपयोगी दिखाता है। सूची प्राप्त करने के लिए, आपको जोड़ना होगा --package-names( -p), लेकिन तब यह नियमित अपडेट और सुरक्षा अपडेट के बीच अंतर करने के लिए प्रतीत नहीं होता है।
शुभ अंक

5

आप इस आदेश के साथ एक सूची प्राप्त कर सकते हैं:

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

2
आपने सभी आउटपुट भेजे हैं /dev/nullताकि आप कुछ भी नहीं कर रहे हों!
शुभ

ऐसा लगता है कि भरोसेमंद के साथ काम नहीं करता है। यह उन सभी पैकेजों को दिखाता है जिनके बदले अपडेट की आवश्यकता है।
खूंखार अर्धविराम

मुझे लगता है कि यह आपको दिखाएगा कि अनअटेंडेड-अपग्रेड क्या करने जा रहा था, और यदि आप इसे केवल सुरक्षा अपडेट करने के लिए कॉन्फ़िगर करते हैं, तो शायद यह नुस्खा काम करेगा। जवाब हालांकि सबसे अच्छा अधूरा अधूरा है।
mc0e

आज मैंने इस जरूरत को हल कर दिया है थोड़ा सा apt-check को संशोधित करना। इस gist की जाँच करें: gist.github.com/thesp0nge/94f9d336a081a3fefba6ca61d787a28b
पाओलो

3

मेरे पास एक संशोधित संस्करण है update-notifierजो एक अतिरिक्त स्विच लेता है: --security-package-namesजो केवल सुरक्षा से संबंधित पैकेज नामों को आउटपुट करता है। मेरे पास यह एक जिस्ट के रूप में है (जब तक कि मैं लॉन्चपैड में संबंधित परियोजना में मर्ज का अनुरोध नहीं करता हूं)। तब तक इसे निम्न प्रकार से चलाया जा सकता है:

रन

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

उत्पादन

यह प्रारूप का आउटपुट देता है: पैकेज का नाम , स्थापित संस्करण और उम्मीदवार संस्करण :

...
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 के उत्तर के आधार पर।

12.04 / सटीक के लिए:

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

14.04 / ट्रस्टी के लिए:

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

1

और एक वैरिएबल अन्य प्रतिक्रियाओं को पढ़ने के बाद एक साथ लिपट गया - मेरा मानना ​​है कि यह झूठे सकारात्मक मुद्दे को पूरा करने के लिए है, और यथोचित रूप से हल्का है।

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

0

मेरा मानना ​​है कि ओपी से पूछे गए सवाल का जवाब देना पैकेजों की सूची को देखना है, न कि केवल सुरक्षा पैकेजों को कैसे स्थापित करना है। @Topdog के उत्तर पर बिल्डिंग आपको उपयोग करना चाहिए: /usr/lib/update-notifier/apt-check -p जहां -pध्वज पैकेज के लिए खड़ा है


1
यह सभी पैकेजों को सूचीबद्ध करता है और न केवल सुरक्षा अपडेट
कॉन्फिक करता है

apt-check डेबियन जेसी में अनुपलब्ध लगता है। यह अपडेटेड व्हीजी-सिस्टम पर बना हुआ है, लेकिन ताजा इंस्टॉल में अपडेट-नोटिफ़ायर-कॉमन नहीं है। क्या आप कोई विकल्प जानते हैं?
Jan

@jan यह अभी भी वहाँ है, के हिस्से के रूप update-notifier-common
Auspex

@ एसेक्स वह पैकेज अब जेसी में मौजूद नहीं है। केवल वही है update-notifierजो के लिए एक पुराना संक्रमणकालीन पैकेज है gnome-packagekit। देखें यहाँ
जनवरी

1
@ भजन क्षमा करें, मैंने इसके लिए डेबियन शब्द लिया। मैं फ़ाइल, के लिए खोज की packages.debian.org/... और यह मुझे बताया था You have searched for files named apt-check in suite jessie, all sections, and all architectures. Found 1 results., लेकिन तब जब आप वास्तव में है कि परिणाम के लिए लिंक पर क्लिक करें, यह आपको बताता हैPackage not available in this suite.
Auspex

0

ये दोनों आदेश सूची को थूक देंगे। पाइप को wc -l देखने के लिए कि कितने पीछे हैं। ;-)

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

पुराने डिस्ट्रोस के लिए अभी भी मान्य है या यदि आपके पास रिपॉजिट अपडेट है, लेकिन सुरक्षा:

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

सावधान रहे। यदि आप रूट के रूप में चलने के दौरान इस तरह से /tmp/security.list जेनरेट करते हैं, तो आप सिम्लिंक आधारित हमले के लिए असुरक्षित हैं।
mc0e

मुझे यह तरीका (पहला कोड ब्लॉक) Ubuntu 14.04 पर नहीं मिल सकता है। -oDir::Etc::Sourcelistविकल्प खजाने के मानक सेट निष्क्रिय करने के लिए प्रतीत नहीं होता।
mc0e

0

मुझे लगता है कि @smin का जवाब मूल रूप से एक अच्छा दृष्टिकोण है, लेकिन regex के साथ थोड़ा ढीला है, जैसा कि @Shanatsel ने उल्लेख किया है।

इस बारे में कैसा है:

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

यह उन संस्करणों के साथ पैकेज नामों को सूचीबद्ध करता है जिन्हें आप इंस्टॉल करना चाहते हैं। -$2यदि आप संस्करण नहीं चाहते हैं तो आप प्रिंट स्टेटमेंट से बाहर निकाल सकते हैं ।

[यह शायद perl के बजाय awk का उपयोग करके बस थोड़ा हल्का वजन बनाया जा सकता है]


0

मैंने अपने Ubuntu सिस्टम पर apt-check स्क्रिप्ट को संशोधित करने का हल किया। यह केवल सुरक्षा अद्यतनों के बारे में ध्यान रखता है, यदि -p ध्वज प्रदान किया गया है तो पैकेज नामों को भी प्रदर्शित करता है।

आप यहाँ gist पा सकते हैं: https://gist.github.com/thesp0nge/94f9d336a081a3fefba6ca61d787a28b

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.