ディディ・コーエンの答え
能力ベースのセキュリティですかsudo
?su
UnixとLinuxには、標準ユーザーとスーパーユーザー(しばしばルートと呼ばれる)の2つのレベルの権限があります。
標準ユーザーは、所有権、グループメンバーシップ、または権限でアクセスできるファイルにのみアクセスできます。前方十字靭帯。
スーパーユーザーはすべてを持っており(この回答ではSELinuxのようなものを無視します)、制限はありません。ユーザー空間で。
プロセスの有効または実際のuidがルートであり、ファイルにアクセスしようとすると、まだファイルの許可ビットに縛られていますか?それとも、引用文が示すように(私が正しく理解した場合)、euidルートを使用すると、ファイルの許可ビットは無視されますか?
例えば、
所有者がルートではなく、そのグループがプロセスの有効または補足グループと一致しない場合、ファイルの「その他」権限ビットはプロセスに適用されますか?ファイルが他人の読み取り、書き込み、または実行を許可しない場合でも、プロセスはまだファイルを読み書きすることができますか?
ファイル所有者がルートであり、「ユーザー」ファイル権限ビットが読み取り、書き込み、または実行を許可しない場合でも、プロセスはファイルを読み書きすることができますか?
有効または実際のuidがルートであるプロセスがファイルにアクセスできないようにすることは可能ですか?たとえば、ファイルの許可ビットを変更することによって?
ベストアンサー1
伝統的なUNIXではroot
何でもできる。
しかし、最新のLinux(そしておそらく他のUnix)では今動作します。ここで説明する機能は、CAP_DAC_OVERRIDE
この機能を使用するすべてのプロセスがファイル権限を無視することです(例外x
、他の回答を参照)。
ほとんどのシステムは、プロセスが変更されたときに以前のバージョンとの互換モードに設定されます。効果的なユーザーIDはrootで、すべての機能を取得します。効果的なユーザーIDがrootから変更されると、機能が失われます。
ルート以外のプロセスに特定の機能を渡すために使用できる機能の削除を防ぐ方法があります。ルートにならずに機能を得ることができる方法もあります。これは、プロセスがルートになる方法と同様に機能します。
重要なのは有効なユーザーIDです。実際のユーザーIDと保存されたユーザーIDを使用すると、このIDを他のIDの1つ(有効なユーザーIDなど)にのみコピーできます。
SE_linuxと名前空間/ cgroupsは、ルートが実行できる操作を制限できます。