it-swarm-id.com

Bagaimana saya bisa menginstal pembaruan keamanan dari baris perintah?

Sudo apt-get upgrade menginstal semua pembaruan, bukan hanya pembaruan keamanan. Saya tahu bahwa saya dapat menggunakan Pembaruan Manajer untuk memilih hanya pembaruan keamanan yang penting, tetapi apakah ada cara untuk melakukan ini dari baris perintah?

321
Michael Crenshaw

Paket tanpa pengawasan-upgrade menyediakan fungsionalitas untuk menginstal pembaruan keamanan secara otomatis.

Anda bisa menggunakan ini, tetapi alih-alih mengonfigurasi bagian otomatis Anda bisa menyebutnya secara manual:

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

Jika Anda ingin menjalankannya dengan tenang:

Sudo unattended-upgrade

CATATAN: Ketika Anda menelepon peningkatan tanpa pengawasan, Anda meninggalkan "s" dari ujung.

Ini mengasumsikan bahwa paket diinstal secara default, yang mungkin benar. Jika tidak, lakukan saja:

Sudo apt-get install unattended-upgrades

Lihat juga /usr/share/doc/unattended-upgrades/README.md.

300
blueyed

Beberapa Tips Cara Mengelola Pembaruan

Ini berlaku untuk Debian dan Ubuntu, tetapi mengikuti instruksi yang lebih spesifik untuk Ubuntu.

  • Hanya tampilkan pembaruan keamanan:

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

    atau

    Sudo unattended-upgrade --dry-run -d
    

    atau

    /usr/lib/update-notifier/apt-check -p
    
  • Tampilkan semua paket yang dapat ditingkatkan

    apt-get -s dist-upgrade | grep "^Inst"
    
  • Instal pembaruan keamanan saja

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

Catatan:

  • Terkadang Ubuntu menunjukkan pembaruan keamanan seolah-olah itu berasal dari $ repositori-pembaruan repositori. Begitulah, saya diberitahu, karena pengembang Ubuntu mendorong pembaruan keamanan ke repositori $ release-updates juga untuk mempercepat ketersediaannya.

    Jika demikian, Anda dapat melakukan yang berikut untuk hanya menampilkan pembaruan keamanan:

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

    dan

    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'}
    
  • Periksa layanan apa yang perlu direstart setelah peningkatan paket. Cari tahu paket apa yang akan Anda tingkatkan sebelumnya dan jadwalkan restart/reboot Anda. Masalahnya di sini adalah bahwa kecuali Anda me-restart layanan itu masih mungkin menggunakan versi perpustakaan yang lebih lama (alasan paling umum) yang telah dimuat ke memori sebelum Anda menginstal paket baru yang memperbaiki kerentanan keamanan atau apa pun.

    checkrestart -v
    

    Namun, perlu diingat bahwa checkrestart dapat mendaftar proses yang seharusnya tidak dimulai kembali. Sebagai contoh, layanan PostgreSQL mungkin menyimpan referensi memorinya ke file xlog yang sudah dihapus, yang bukan alasan yang sah untuk memulai kembali layanan.

    Oleh karena itu, cara lain yang lebih andal untuk memeriksa ini menggunakan utils standar adalah skrip bash kecil berikut yang saya curi tanpa malu-malu https://locallost.net/?p=2

    Ia memeriksa apakah proses yang berjalan pada suatu sistem masih menggunakan pustaka yang dihapus berdasarkan menyimpan salinannya dalam memori aktif.

    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
    
113
ILIV

ganti /etc/apt/preferences dengan yang berikut ini:

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

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

sekarang apt-get upgrade sederhana akan memutakhirkan semua pembaruan keamanan saja.

Mengapa (dan bagaimana) ini berfungsi: File preferensi akan menyematkan semua paket dari distribusi Ubuntu ke prioritas 50, yang akan membuatnya kurang diinginkan daripada paket yang sudah diinstal. File yang berasal dari repositori keamanan diberikan prioritas default (500) sehingga mereka dipertimbangkan untuk instalasi. Ini berarti bahwa hanya paket yang dianggap lebih diinginkan daripada yang diinstal saat ini adalah pembaruan keamanan. Informasi lebih lanjut tentang menyematkan di apt_preferences manpage .

Anda dapat sementara mempromosikan distribusi tertentu untuk pembaruan dengan opsi --target-release yang bekerja dengan apt-get dan aptitude (setidaknya) yang akan memungkinkan Anda menyematkan rilis tertentu sehingga mereka memenuhi syarat untuk ditingkatkan.

Jika Anda ingin menggunakan ini hanya untuk skrip dan tidak menjadikannya default untuk sistem, Anda dapat menempatkan aturan di beberapa lokasi lain dan menggunakan ini sebagai gantinya:

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

Ini akan membuat pencarian file preferensi dari lokasi yang tidak standar.

File preferensi yang diberikan sebagai contoh tidak berlaku untuk repositori pihak ketiga, jika Anda ingin menyematkannya juga Anda dapat menggunakan apt-cache policy untuk dengan mudah menentukan kunci yang diperlukan untuk menyematkan.

46
Ressu

Berikut ini dikonfirmasi di Ubuntu 14.04 LTS.

Gunakan paket unattended-upgrade.

Lihatlah file /etc/apt/apt.conf.d/50unattended-upgrades. Harus ada bagian di atas yaitu:

// 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";
};

Perhatikan bagaimana ini telah dikonfigurasi untuk hanya mengizinkan peningkatan tanpa pengawasan untuk paket keamanan, secara default.

Ubah file /etc/apt/apt.conf.d/10periodic mirip dengan:

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

Ini akan menjalankan peningkatan keamanan tanpa pengawasan otomatis, sekali per hari.

Sekarang, untuk menjalankan secara manual: Sudo unattended-upgrade.

Untuk mengujinya sebagai dry-run, tanpa melakukan apa pun: Sudo unattended-upgrade --dry-run.

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

11
vcardillo

Meskipun sangat jelek, Anda bisa menonaktifkan semua repositori selain dari repositori keamanan dan kemudian lakukan:

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

Saya belum mengujinya, tetapi secara teori hanya akan menemukan pembaruan dalam repo keamanan dan menerapkannya ...

5
Stephen RC
  • apt-get update: cukup baca entri dalam repositori - sesuai dengan daftar yang ada. Diperlukan untuk memeriksa apa yang baru.
  • apt-get upgrade: semua pembaruan untuk paket yang diinstal tanpa modul kernel. Tidak ada pembaruan rilis.
  • apt-get dist-upgrade: semua pembaruan untuk paket yang diinstal juga dengan modul kernel. Tidak ada pembaruan rilis.
  • apt-get dengan parameter -s: hanya tes, tidak ada perubahan yang dilakukan.
3
fuser

Pada Debian saya menggunakan perintah ini untuk melakukan hanya pembaruan keamanan:

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

Saya tidak dapat menemukan opsi dalam apt-get atau aptitude, namun seseorang memiliki pertanyaan yang sama pada SuperUser. Satu-satunya respons adalah:

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

Tidak ada jawaban, apakah itu berhasil.

0
Ross