Como obter uma lista de atualizações de segurança na linha de comando no Debian / Ubuntu

18

Na ferramenta GUI, você pode obter uma lista de pacotes com atualizações de segurança. Isso pode ser feito na linha de comando no Debian ou no Ubuntu?

Normalmente, eu poderia usar o "apt-get upgrade", que me mostraria o que está sendo atualizado, mas gostaria de saber quais são as atualizações de segurança.

    
por Stephen Paulger 05.09.2012 / 12:59

11 respostas

4

Use o aplicativo de atualização autônoma.

sudo unattended-upgrade

Isso permite que você instale somente atualizações de segurança automaticamente, mas pode chamá-las manualmente, se necessário.

    
por 05.09.2012 / 14:18
31
apt-get upgrade -s | grep -i security

... é o que o plugin Nagios check-apt usa para contar as atualizações de segurança pendentes, que é semelhante ao que você está procurando.

    
por 05.09.2012 / 15:54
10
No ubuntu, você deve ser capaz de usar o apt-check, é o que preenche o seu pacote com o número de atualizações de segurança disponíveis.

    
por 05.09.2012 / 14:22
5

Você pode obter uma lista com este comando:

sudo unattended-upgrade --dry-run -d 2> /dev/null | grep 'Checking' | awk '{ print $2 }'
    
por 09.12.2014 / 09:28
3

Eu tenho uma versão modificada de update-notifier que usa uma opção adicional: --security-package-names , que gera apenas os nomes de pacotes relacionados à segurança. Eu tenho isso como uma essência (até que eu crie uma solicitação de mesclagem no projeto relevante no launchpad). Até lá, pode ser executado da seguinte forma:

Executar

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

Resultado

Isso fornece uma saída do formato: nome do pacote , versão instalada e versão candidata :

...
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
...
    
por 07.07.2016 / 01:32
3

Com base na resposta de Fabrizio Regini acima.

Para 12.04 / Preciso:

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

Para 14.04 / Trusty:

sudo unattended-upgrade --dry-run -d | grep 'Checking' | grep security | awk '{ print $2 }'
    
por 22.07.2016 / 20:54
1

E uma variante foi colidida depois de ler as outras respostas - acredito que isso atenda à questão dos falsos positivos e seja razoavelmente leve.

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

Eu acredito que responder a pergunta que o OP faz é como ver a Lista de pacotes, e não como instalar apenas pacotes de segurança. Com base na resposta do @topdog Você deve usar: %código% Onde o /usr/lib/update-notifier/apt-check -p flag representa pacotes

    
por 09.07.2015 / 23:11
0

Estes dois comandos irão cuspir a lista. Pipe para wc -l para ver quantos estão por trás. ; -)

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

Ainda é válido para distros mais antigas ou se você tiver reposições de atualização desativadas, mas segurança em:

sudo apt-get upgrade -s| grep ^Inst |grep Security 
    
por 04.11.2016 / 22:12
0

Eu acho que a resposta do @smin é basicamente uma boa abordagem, mas um pouco solta com o regex, como notado por @Shnatsel.

Que tal isso:

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

Isso lista os nomes dos pacotes junto com as versões que você deseja instalar. Você pode tirar -$2 da declaração de impressão se não quiser as versões lá.

[Isso provavelmente poderia ser feito um pouco mais leve usando awk em vez de perl]

    
por 20.06.2017 / 11:33
0

Eu resolvi modificar o script apt-check no meu sistema Ubuntu. Ele cuida apenas de atualizações de segurança, exibindo também nomes de pacotes se o sinalizador -p tiver sido fornecido.

Você pode encontrar a essência aqui: link

    
por 18.10.2018 / 14:01