Como saber exatamente quais pacotes possuem atualizações de segurança no Ubuntu?

1

Estou tentando obter uma lista de pacotes marcados como "atualizações de segurança"

Meu sistema básico é o Ubuntu 14.04

Por exemplo, há um script no Ubuntu 14.04 que listará o número de atualizações disponíveis. O dinâmico-ish motd usa.

/usr/lib/update-notifier/apt-check

A execução sem args fornece saída separada por ponto-e-vírgula para stderr, por exemplo:

$ /usr/lib/update-notifier/apt-check
60;11   <-- (this is actually standard error)

Existem sinalizadores "legíveis por humanos" e "nomes de pacotes" para este script. Ótimo! Mas os "nomes de pacotes" apenas eliminam os pacotes que estão sendo atualizados, não os colocam em pilhas de segurança / não-segurança.

Como posso saber o que há no repositório "atualizações de segurança"?

Eu tentei coisas como:

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

Esse não está funcionando para mim.

Estou pensando em separar o script do apt-check e reutilizá-lo, mas gostaria de saber se existe um recurso existente para fazer o que eu quero antes de fazer isso.

Atualizar

Acabei modificando o script python "/ usr / lib / update-notifier / apt-check" e basicamente adicionando saída para imprimir os detalhes do pacote sempre que aquele script fizesse uma checagem com a função "isSecurityUpgrade ()". (Veja esse roteiro para detalhes)

    
por JDS 11.11.2015 / 20:35

1 resposta

2

EDIT: E minhas desculpas por não perguntar nos comentários, mas sou muito novo e não tenho o representante.

Se você está procurando apenas aqueles que vêm de repos de segurança, eu uso o abaixo com o cron para enviar-me um e-mail uma vez por semana de nossos servidores não monitorados.

#!/bin/bash

#-------------------------------------------------------------------------------------------------#
#- Name....: checkSecurityupdates.sh
#- Notes...:
#-------------------------------------------------------------------------------------------------#

# create fresh securities file each run
grep "-security" /etc/apt/sources.list | sudo grep -v "#" > /etc/apt/security.sources.list
echo "created security specific source list"


# Create the security file list
echo 'n' | apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list >> /root/securities-to-update.txt
echo "created list of security updates"



# What's the mimetype
get_mimetype(){
  # warning: assumes that the passed file exists
  file --mime-type "$1" | sed 's/.*: //'
}


# some variables

from="[email protected]"
to="[email protected]"
subject='hostname'
boundary="ZZ_/afg6432dfgkl.94531q"
body="Please see attached"
declare -a attachments
attachments=( "securities-to-update.txt" )

# Build headers
{

printf '%s\n' "From: $from
To: $to
Subject: $subject
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=\"$boundary\"

--${boundary}
Content-Type: text/plain; charset=\"US-ASCII\"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

$body
"

# now loop over the attachments, guess the type
# and produce the corresponding part, encoded base64
for file in "${attachments[@]}"; do

  [ ! -f "$file" ] && echo "Warning: attachment $file not found, skipping" >&2 && continue

  mimetype=$(get_mimetype "$file")

  printf '%s\n' "--${boundary}
Content-Type: $mimetype
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$file\"
"

  base64 "$file"
  echo
done

# print last boundary with closing --
printf '%s\n' "--${boundary}--"

} | sendmail -t -oi   
echo "sent security updates list"



# cleanup security files
rm /etc/apt/security.sources.list
rm /root/securities-to-update.txt
    
por 12.11.2015 / 08:20