Ответ 1
При запуске от имени пользователя root вы можете получить доступ к более широкому спектру сервисов ядра. Например, вы можете:
- управлять сетевыми интерфейсами, таблицами маршрутизации, правилами netfilter;
- создавать сырые сокеты (и, вообще говоря, "экзотические" сокеты, реализующие код, который получил меньше контроля, чем старые старые TCP и UDP);
- файловые системы mount/unmount/remount;
- изменить права собственности на файлы, разрешения, расширенные атрибуты, переопределить обычные разрешения (т.е. использовать несколько разные коды кода);
- и др.
(Интересно отметить, что все эти примеры защищены capabilities.)
Ключевым моментом является то, что с правами root вы можете использовать больше кода ядра; если в этом коде есть уязвимость, вы можете запустить его как root, но не как обычный пользователь.
Кроме того, если кто-то найдет способ вырваться из контейнера, если вы вырвёте его как root, вы можете нанести гораздо больший урон, чем обычный пользователь.