D'une part, il y a des choses qu'aucun utilisateur ne peut faire, comme
- répertoires de liaison fixe (en raison des limitations du système de fichiers)
- écrire sur un CD-ROM déjà gravé (parce que la physique)
Mais ce ne sont pas des privilèges, car ils ne peuvent pas être accordés, ils ne sont tout simplement pas possibles pour quiconque.
Ensuite, il existe des restrictions pour l'ensemble du système ou des parties de celui-ci qui peuvent être activées ou désactivées.
Par exemple, sous OS X, il existe une option pour autoriser l'exécution du code uniquement s'il a été signé par Apple.
Je ne considère pas cela comme un privilège réel, car aucun utilisateur ne peut l'avoir si le superutilisateur ne le peut pas. Vous ne pouvez le désactiver que globalement.
Edit:
Votre idée d'un fichier sans le bit exécutable tomberait également dans cette catégorie, car personne ne peut le faire, et personne ne peut obtenir cette autorisation.
Et même lorsque vous accordez à un autre utilisateur ou groupe l'autorisation d'exécuter ce fichier, mais pas root ou qu'un groupe d'utilisateurs root est présent, root pourra toujours exécuter ce fichier (testé sur OS X 10.10, 10.11 et Ubuntu 15.04).
En dehors de ces cas, il n'y a pratiquement rien que root ne puisse faire.
Il existe cependant une chose appelée mode noyau (par opposition au mode utilisateur).
Pour autant que je sache, sur un système sain, seul le noyau, les extensions et les pilotes du noyau s'exécutent en mode noyau, et tout le reste (y compris le shell à partir duquel vous vous connectez en tant que root) s'exécute en mode utilisateur.
On pourrait donc affirmer qu '"être root ne suffit pas". Cependant, sur la plupart des systèmes, l'utilisateur root est capable de charger les modules du noyau, qui s'exécuteront à leur tour en mode noyau, donnant ainsi à root un moyen d'exécuter du code en mode noyau.
Il existe cependant des systèmes (comme iOS) où cela n'est pas (arbitrairement) possible, du moins pas sans exploiter les ensembles de sécurité. Cela est principalement dû à une sécurité accrue, comme l'application de la signature de code.
Par exemple, des clés de chiffrement AES sont intégrées aux processeurs d'iDevices, auxquelles on ne peut accéder qu'en mode noyau. Les modules du noyau pourraient y accéder, mais le code de ces modules du noyau devrait également être signé par Apple pour que le noyau les accepte.
Sous OS X, depuis la version 10.11 (El Capitan), il existe également un soi-disant "mode sans racine" (bien que le nom soit trompeur car root existe toujours), ce qui interdit efficacement root certaines choses que les installateurs peuvent toujours faire.
Citant cette excellente réponse sur AskDifferent :
Voici ce qu'il restreint, même à partir de la racine:
- Vous ne pouvez rien modifier dans / System, / bin, / sbin ou / usr (sauf / usr / local); ou l'une des applications et utilitaires intégrés. Seuls le programme d'installation et la mise à jour logicielle peuvent modifier ces zones, et même ils ne le font que lors de l'installation de packages signés Apple.
root
, et donc aucun droit qui peut être retiréroot
.