本当に。ブル。ジョージは言った彼の講義の一つ(ロシア語)スーパーユーザーが違反できない特定のアクセス権があります。つまり、スーパーユーザーが何かをすることを禁止するアクセス権があります。
インターネット上でこの情報が見つからず、それが何であるか疑問に思います。これはおそらくシステムのコア実行に関連するものでしょうか?たぶん彼はいくつかのシステムプロセスを停止できませんか?それともリアルモードでプロセスを実行できませんか?
この質問はSELinuxとは何の関係もありません(Georgeは質問の冒頭でこれについて話しました)。
答え1
ルートアクセスが拒否されました。:
root
直接ネットワークアクセスが拒否されることがあります。これはsmith
次のようにログインする必要があるため、インターネットに接続しているホストに役立ちますsudo
。
ルートができないことがあります:
これは特権が不足しているわけではありません。ルートが何もできないかはわかりませんが、一部の技術的な問題は「禁止」と見なすことができます。
私はルートなのですが、なぜこのファイルを作成/削除できませんが、一般ユーザーはできますか?
NFS / Samba共有にあり、特定の(access=
)権限が付与されていません。一般ユーザーには慣習法は適用されません。 (以下のローカルルートとリモートルートの比較を参照)
私はルートですが、なぜこのプロセスを終了できませんか?
保留中のI / Oがあり、物理ドライブ/リモートLUNの接続が失われました。再起動によってのみプロセスを終了できます。
私はルートです。 Archemarのパスワードをどうやって知ることができますか?
以前のパスワードを知らなくてもArchemarのパスワードを変更できますがsu - archemar
、パスワードは一方向ハッシュを使用して保存されるため読み取れません(キーロガーがありません)。
ローカルルートとリモートルート
- ワークステーション/PCからrootアクセス権を取得し、会社/大学/大学/プロバイダNFS共有を使用できます。
- 次に、NFSをエクスポートするコンピュータにroot以外のユーザーとしてのみログインできます。
今
cp /bin/bash /nfs/home/me/bash
chown root /nfs/home/me/bash
chmod u+s /nfs/home/me/bash
NFSサーバーにログインして実行して、./bash
会社/大学サーバーのroot権限を取得します。
答え2
一般的なケースでは、これは本当ではありません。スーパーユーザーには、システムが提供するすべての機能に対する特権/権限があります(1)。このルールは SELinux をミックスに追加すると崩壊します。 SELinuxでは、特定の操作を禁止するようにroot権限を制限することもできます。ただし、禁止されている特定の操作はローカルシステムのSELinux構成によって大きく異なり、SELinuxを使用してもこの質問に一般的な意味で答えることはできません。
(1) - システムが特定の機能を提供していない場合(例:リアルタイムカーネル機能なし)、「rootはこの機能にアクセスできません」という声明は誤った仮定です(つまり、与えられた機能はシステムのすべての人が使用するすることができます)
答え3
一方では、こんなこともありますユーザーなしできることなど
- ハードリンクされたディレクトリ(ファイルシステムの制限により)
- 焼いたCD-ROMに書き込む(物理的な問題)
ただし、これは誰にも付与できず、可能ではないため、特権ではありません。
これにより、システム全体またはシステムの一部がオンまたはオフになることが制限される可能性があります。
たとえば、OS Xには、Apple署名コードのみを実行できるようにするオプションがあります。
私はそれが本当の権限だとは思わない。なぜなら、スーパーユーザーがそれを持つことができないなら、どのユーザーもそれを持つことができないからです。グローバルにのみ無効にできます。
編集する:
実行可能ビットがないファイルのアイデアもこのカテゴリに属します。文字通り誰もそうすることができず、誰もその権限を与えられないからです。
ルートまたはルートグループ以外のユーザーまたはグループにファイルの実行権限を付与しても、ルートはファイルを引き続き実行できます(OS X 10.10、10.11、およびUbuntu 15.04サーバーでテスト済み)。
このような状況以外には、ルートができないことはほとんどありません。
ところでということがあります。カーネルモード(ユーザーモードとは逆)
私が知っている限り、通常のシステムでは、カーネル、カーネル拡張、およびドライバだけがカーネルモードで実行され、他のすべて(ルートとしてログインしたシェルを含む)はユーザーモードで実行されます。
したがって、「ルートになるだけでは十分ではありません」と言えます。ただし、ほとんどのシステムでは、ルートユーザーはカーネルモジュールをロードでき、カーネルモジュールはカーネルモードで実行されるため、ルートがカーネルモードでコードを実行できるようになります。
しかし、iOSなどの一部のシステムでは、少なくともセキュリティホールを悪用することなく(任意に)不可能です。これは主に、コード署名の実施などのセキュリティ強化によるものです。
例えば、AES暗号化キーiDevicesのプロセッサに組み込まれているため、カーネルモードでのみアクセスできます。カーネルモジュールできるこれにアクセスするには、カーネルにそれを許可させるには、これらのカーネルモジュールのコードもAppleの署名を受け取る必要があります。
OSでいくつかの作業。
から引用AskDifferentへの素晴らしい答えです。:
これは、ルートから起動する場合の制限です。
- 、、または組み込みのアプリケーションおよびユーティリティの内容
/System
は変更できません。インストーラとソフトウェアアップデートのみがこれらの領域を変更できます。これは、Apple署名パッケージをインストールした場合にのみ可能です。/bin
/sbin
/usr
/usr/local
答え4
一例は、不変ファイルを修正することです。ルートに対してもファイルが不変になるようにi
ファイル属性を設定できます。chattr
たとえば、
# whoami
root
# touch god
# chattr +i god
# rm god
rm: cannot remove ‘god’: Operation not permitted
# touch god
touch: cannot touch ‘god’: Permission denied
ファイルは、ls -l
出力に通常の書き込み可能ファイルとして表示されます。
# ls -l god
-rw-r--r-- 1 root root 0 Oct 26 19:27 god
このプロパティを表示するには、以下をi
使用する必要がありますlsattr
。
# lsattr god
----i----------- god
これchattr マンページこの属性の説明は次のとおりですi
。
「i」属性を持つファイルは変更できません。削除したり名前を変更したり、ファイルへのリンクを作成したり、ファイルにデータを書き込めません。スーパーユーザーまたはCAP_LINUX_IMMUTABLE機能を持つプロセスのみがこのプロパティを設定または消去できます。
ただし、ルートは不変性を簡単にキャンセルできます。
# chattr -i god
# rm -v god
removed ‘god’