Есть ли способ создать «суперадминистратора», то есть пользователя root, которого нельзя удалить или права которого не могут быть изменены другими пользователями root?

KVM реализован в виде ряда модулей ядра, kvmи архитектурного -конкретного модуля(kvm-amdдля AMD, kvm-intelдля Intel ). QEMU — это пользовательское -космическое приложение, которое может использовать KVM, если оно доступно, но не нуждается в нем.

VirtualBox также имеет несколько модулей ядра, основным из которых является vboxdrv. Это обрабатывает обязанности кольца 0 для VirtualBox.

Два набора модулей ядра похожи, но не идентичны, т. е. их функции не полностью перекрываются. Детали виртуализации в обеих установках сильно различаются.

(Если вы просмотрите VirtualBox, вы найдете ссылки на KVM, но он не использует KVM. Он содержит некоторый исходный код, ссылающийся на KVM, поскольку он включает перекомпилятор QEMU, но поддержка KVM явно отключена. Он также предоставляет интерфейс паравиртуализации, совместимый с KVM -, для гостей. Вы должны позаботиться о том, чтобы никогда не использовать параллельно разные хосты виртуальных машин с аппаратным ускорением , потому что они могут накладываться друг на друга и потенциально вызывать сбой хоста — так что вы можете запускать несколько виртуальных машин с QEMU и KVM, но не пытайтесь одновременно запускать виртуальные машины с QEMU/KVM и VirtualBox.)

0
29.09.2020, 14:59
2 ответа

Если учетная запись имеет полный доступ к системе, по определению вы не можете запретить ей делать что-либо по ее выбору.

Теоретически вы могли бы написать модуль ядра, который опосредовал бы попытки изменить что-либо под /rootв корневой файловой системе, а также отказывался бы от удаления себя, но все еще есть способы обойти это. Например, перезагрузка с Rescue CD полностью обходит такой модуль ядра.

Другим решением может быть виртуальная машина с корневой файловой системой, которая сбрасывает себя в известное состояние при каждой загрузке. Этим можно управлять вне контекста самой виртуальной машины, и поэтому никакая учетная запись внутри нее не может быть изменена. Вы по-прежнему не сможете предотвратить изменение вещей учетной записью root внутри виртуальной машины, но, вероятно, это не имеет значения, поскольку вы просто сбросите их при следующем перезапуске.

1
18.03.2021, 23:01

По определению пользователь root может делать в системе все и вся, включая удаление/изменение других пользователей.

while allowing each root user to install packages, changing file permissions etc. (but without them being able to affect the "sysadmin" or from removing them from the system)

Возможно, вам нужна sudoнастройка таким образом, чтобы пользователь мог управлять системой, не имея к ней полного доступа.

Вы можете настроить sudo, чтобы разрешить запуск:

  • apt install/update/upgrade/remove/purge
  • chown/chmodно только для определенных каталогов/файлов
  • useradd/userdel/groupadd/groupdel

Другая идея состоит в том, чтобы использовать виртуализацию (полную или облегченную, т.е.Контейнеры LXC/linux )и позволяют пользователю иметь полный доступ к гостевой ОС.

-1
18.03.2021, 23:01

Теги

Похожие вопросы