Я ищу способ разрешить пользователю устанавливать (только удаленные) пакеты через apt-get(или другой механизм?), но не позволять им запускать произвольные команды от имени пользователя root.

Я могу добраться туда через /etc/sudoers . Скажем, у меня есть это в моем файле /etc/sudoers

root ALL=(ALL:ALL) ALL
john ALL=NOPASSWD:/usr/bin/apt,/usr/bin/apt-get

Тогда Джон появляется ограниченным для запуска aptи apt-getчерез sudo. Но... похоже, есть способы выйти apt-getв оболочку с правами root ( https://blog.ikuamike.io/posts/2021/package_managers_privesc/ ):

  • Введите sudo apt-get changelog aptи нажмите Enter
  • Введите восклицательный знак !и нажмите Enter
  • Теперь вы находитесь в оболочке как пользователь root и можете делать все что угодно

Или запустите ниже:

sudo apt update -o APT::Update::Pre-Invoke::="/bin/bash"

Если это имеет значение, это в Docker

no answer