С одной стороны, есть вещи, которые ни один пользователь не может сделать, такие как
- жестко связанные каталоги (из-за ограничений файловой системы)
- запись на уже сожженный CD-ROM (потому что физика)
Но это не привилегии, потому что они не могут быть предоставлены, они просто невозможны ни для кого.
Кроме того, существуют ограничения для всей системы или ее частей, которые можно включать или выключать.
Например, в OS X есть опция, позволяющая запускать код, только если он был подписан Apple.
Я также не считаю это действительной привилегией, потому что ни один пользователь не может иметь ее, если суперпользователь не может. Вы можете только глобально отключить его.
Изменить:
Ваша идея файла без исполняемого бита также попадет в эту категорию, так как буквально никто не может сделать это, и никто не может получить это разрешение.
И даже если другой пользователь или группа получит разрешение на выполнение этого файла, но не root, а корневая группа пользователей не находится, root все равно сможет выполнить этот файл (протестировано на OS X 10.10, 10.11 и сервере Ubuntu 15.04).
Помимо этих случаев, root ничего не может сделать.
Однако существует функция, называемая режимом ядра (в отличие от режима пользователя).
Насколько я знаю, в нормальной системе только ядро, расширения ядра и драйверы работают в режиме ядра, а все остальное (включая оболочку, из которой вы входите в систему как root) работает в режиме пользователя.
Таким образом, вы можете утверждать, что «недостаточно быть корнем». Однако в большинстве систем пользователь root может загружать модули ядра, которые, в свою очередь, будут работать в режиме ядра, эффективно предоставляя root способ запуска кода в режиме ядра.
Однако существуют системы (например, iOS), где это (произвольно) невозможно, по крайней мере, без использования целых систем безопасности. В основном это связано с повышенной безопасностью, например, принудительным применением подписи кода
Например, в процессоры iDevices встроены ключи шифрования AES, доступ к которым возможен только из режима ядра. Модули ядра могут получить к ним доступ, но код в этих модулях ядра также должен быть подписан Apple, чтобы ядро могло их принять.
На OS X, начиная с версии 10.11 (El Capitan), существует также так называемый «режим без root» (хотя название вводит в заблуждение, потому что root все еще существует), что эффективно запрещает некоторые действия root, которые могут делать установщики.
Цитирую этот отличный ответ на AskDifferent :
Вот что это ограничивает, даже от root:
- Вы не можете ничего изменить в / System, / bin, / sbin или / usr (кроме / usr / local); или любое из встроенных приложений и утилит. Только установщик и обновление программного обеспечения могут изменять эти области, и даже они делают это только при установке пакетов, подписанных Apple.
root
, и, следовательно, нет права, которое можно отнятьroot
.