一方で、次のようなユーザーにはできないこともあります。
- ディレクトリのハードリンク(ファイルシステムの制限のため)
- すでに書き込まれたCD-ROMへの書き込み(物理学のため)
しかし、それらは特権ではありません。付与できないため、誰にとっても不可能です。
次に、システム全体またはその一部に制限を適用して、オンまたはオフにできます。
たとえば、OS Xには、Appleによって署名されている場合にのみコードの実行を許可するオプションがあります。
スーパーユーザーができない場合、ユーザーはそれを所有できないため、これも実際の特権とは見なしません。グローバルにのみ無効にできます。
編集:
実行可能ビットのないファイルのアイデアもこのカテゴリに該当します。文字通り誰もそれを行うことができず、誰もその許可を与えることができないからです。
また、別のユーザーまたはグループにそのファイルを実行する権限を与えても、ルートまたはユーザーグループのルートが存在しない場合でも、ルートはそのファイルを実行できます(OS X 10.10、10.11およびUbuntu 15.04サーバーでテスト済み)。
これらの場合とは別に、rootができないことはほとんどありません。
ただし、(ユーザーモードではなく)カーネルモードと呼ばれるものがあります。
私の知る限り、健全なシステムでは、カーネル、カーネル拡張機能、ドライバーのみがカーネルモードで実行され、他のすべて(ルートとしてログインするシェルを含む)はユーザーモードで実行されます。
したがって、「rootになるだけでは十分ではない」と主張できます。ただし、ほとんどのシステムでは、rootユーザーはカーネルモジュールをロードできます。これは、カーネルモードで実行され、カーネルモードでコードを実行する方法をルートに効果的に提供します。
ただし、(iOSのように)少なくともセキュリティ全体を活用しない限り、これが(任意に)不可能なシステムがあります。これは主に、コード署名の強制などのセキュリティの向上によるものです。
たとえば、iDevicesのプロセッサに組み込まれたAES暗号化キーがあり、カーネルモードからのみアクセスできます。カーネルモジュールはそれらにアクセスできますが、カーネルがそれらを受け入れるためには、それらのカーネルモジュール内のコードもAppleによって署名される必要があります。
OS Xでは、バージョン10.11(El Capitan)以降、いわゆる「ルートレスモード」もあります(ルートがまだ存在するため、名前は誤解を招きますが)。AskDifferentのこの優れた答え
から引用:
ルートからであっても制限するものは次のとおりです。
- / System、/ bin、/ sbin、または/ usr(/ usr / localを除く)を変更することはできません。または組み込みのアプリとユーティリティのいずれか。これらの領域を変更できるのはインストーラーとソフトウェアの更新のみであり、Apple署名付きパッケージをインストールする場合にのみ変更できます。
root
、から奪われる権利はありませんroot
。