Est-il sûr que mon user ssh reçoive un mot de passe sudo sans mot de passe pour `apt-get update` et` apt-get upgrade`?

J'ai un count d'user standard SSH sur mon server personnel, et il a un access sudo (via son mot de passe).

J'utilise une key publique, donc je n'ai pas besoin de taper le mot de passe du count pour me connecter. Est-il permis de laisser cet user sudo accéder sans mot de passe pour exécuter uniquement la apt-get update apt-get upgrade et apt-get upgrade ou apt-get dist-upgrade )? Je request d'un sharepoint vue de la security, pas d'un sharepoint vue «cassé / buggy mise à jour». Je suis le seul à me connecter, et si je casse quelque chose avec une mise à jour, je peux toujours le faire (avec un mot de passe) pour réparer les choses.

Le point principal est d'être en mesure d'exécuter des mises à jour en time opportun sur mon server sans taper inutilement un mot de passe. Mais si quelqu'un a eu access à ce count, je ne veux pas qu'il puisse installer quoi que ce soit, et je ne sais pas s'il y a d'autres soucis que je devrais avoir avec ces deux commands.

Voici la ligne exacte dans mon file sudoers :

stephen ALL=(root) NOPASSWD: /usr/bin/apt-get update, /usr/bin/apt-get upgrade, /usr/bin/apt-get dist-upgrade

Autoriser un user less fiable à exécuter la apt-get update est correct. Ils risquent de consumr beaucoup de bande passante et de remplir un peu d'espace disque, et ils ont beaucoup d'autres moyens de le faire, sauf si vous avez pris des mesures ssortingctes pour éviter cela.

Permettre à un user d'exécuter apt-get upgrade est susceptible de lui donner un access root. Certains packages interrogent l'user et pourraient permettre l'échappement d'un shell; par exemple, l'user qui a access au terminal pour lequel apt-get upgrade (ou tout appel dpkg -i ) est en cours d'exécution peut être invité à indiquer ce qu'il doit faire si un file de configuration a été mis à jour et si l'une des options doit être exécutée une coquille pour examiner la situation.

Vous devez restreindre la command un peu plus:

 #!/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 

Cela ne devrait pas donner à l'user un moyen de devenir root, car ils ne peuvent pas interagir avec le gestionnaire de packages. Comme les mises à niveau peuvent parfois interrompre un système et qu'un user ne disposant que de ces permissions ne peut rien réparer, cela ne peut se faire qu'avec une version stable, avec seulement des mises à jour de security en attente. S'il s'agit d'une mise à jour du kernel, requestz à un user disposant d'un access root complet de décider quand triggersr un redémarrage.

Par ailleurs, l'user ne serait pas en mesure d'injecter du contenu de package – pour ce faire, ils auraient besoin de contrôler le server dissortingbuant le package, et en plus du server signant le package si le package est signé ( ce qui est le cas pour toutes les sources officielles). Ce n'est pas important pour ce vector d'attaque qui est à la tête de la machine au moment de la mise à jour.

Tout cela étant dit … utiliser des mises à jour sans surveillance , si c'est ce que vous voulez.