Permitir que um usuário menos confiável execute apt-get update
está ok. O pior que podem fazer é consumir muita largura de banda e preencher algum espaço em disco, e eles têm muitos outros meios para fazer isso, a menos que você tenha tomado medidas rigorosas para evitar isso.
É possível que um usuário execute apt-get upgrade
para fornecer acesso root. Alguns pacotes consultam o usuário e podem permitir um escape de shell; por exemplo, o usuário que tem acesso ao terminal em que o apt-get upgrade
(ou qualquer dpkg -i
call) está sendo executado pode ser solicitado a saber o que fazer se um arquivo de configuração tiver sido atualizado e uma das opções é executar um shell para examinar a situação.
Você precisa restringir o comando um pouco mais:
#!/bin/sh
set -ex
exec </dev/null >"/var/log/automatic-apt-upgrade-$(date +%Y%m%d-%H%M%S)-$SUDO_USER.log" 2>&1
apt-get --assume-no upgrade
Isso não deve dar ao usuário uma maneira de se tornar root, já que eles não podem interagir com o gerenciador de pacotes. Como as atualizações às vezes podem quebrar um sistema, e um usuário com apenas essas permissões não conseguiria consertar nada, isso só deveria ser feito com uma versão estável, com apenas atualizações de segurança pendentes. Se for uma atualização do kernel, deixe um usuário com acesso root completo decidir quando acionar uma reinicialização.
A propósito, o usuário não seria capaz de injetar conteúdo do pacote - para isso, eles precisariam estar no controle do servidor que está distribuindo o pacote e, além disso, o servidor assinaria o pacote se o pacote é assinado (o que é o caso de todas as fontes oficiais). É irrelevante para esse vetor de ataque quem está no comando da máquina no momento da atualização.
Tudo isso dito ... use atualizações autônomas , se é isso que você quer.