web-dev-qa-db-ja.com

書き込み権限を削除しても、rootによるファイルへの書き込みは妨げられません

Ubuntuマシン(ext3ファイルシステム)で、ファイルから書き込み権限を削除しても、rootがそのファイルに書き込むことができないことに気づきました。

これはUNIXファイルのアクセス許可の一般的なルールですか?またはUbuntuに固有ですか?または私のマシンの設定ミス?

#touch abc 
#chmod ugo-w abc 
#python 
 Python 2.6.4(r264:75706、Dec 7 2009、18:45:15) 
 [GCC 4.4.1] on linux2 
詳細については、「help」、「copyright」、「credits」、または「license」と入力してください。
 >>> open( 'abc '、' w ')。write(' AAA\n ')
 >>> 
#cat abc 
 AAA 

通常のユーザーアカウントからこれを行うと、ファイルへの書き込みが(予想どおり)失敗します。

  1. これは正常な動作ですか?

  2. Rootが誤ってファイルに書き込むのを防ぐ方法はありますか? (AppArmorなどではなく、通常のファイルシステムメカニズムを使用することが望ましい)

私が間違いなく理解していないことを教えてください。

注:rootがシステムを完全に制御できることを理解しています、たとえばchange任意のファイルの権限。私の質問は、現在設定されている権限がrootとして実行されているコードに適用されるかどうかです。このアイデアは、ルートユーザーが自分でファイルに誤って書き込むのを防ぐことです。

注:通常の操作では、1人をrootとしてログインしないでください。私はこの動作に気づき、それについてあなたに尋ねています。

33
laramichaels

1)これは正常な動作です。 rootは常にすべてのファイルにrwアクセスできます。

2)ルートを使用してファイルを保護することができます(故意のアクションではなく、とにかく偶然です)。

chattr +i filename.ext

つまり、「属性の変更は不変を追加する」です。保護を解除するには:

chattr -i filename.ext

見て man chattr詳細

47
brice
  1. はい、これは正常です。 ルートは神です

  2. はい、rootがファイルを上書きしないようにする方法があります。

    • chattr+iセット、-i unsets)。 rootアクセスが必要で、ext2/ext3(おそらくext4も)でのみ機能しますが、それ以外の場合は実用的です。
    • ルートとしてアプリを実行しないでください。ルート特権、ファイルの上書きはありません。システム関数にアクセスするには、Sudoを使用します。
    • ファイルシステムをアンマウントします。マウントされたファイル、上書きファイルはありません。 [*]
    • コンピュータの電源を切ります。電気もファイルも上書きされません。

これらのメソッドは論理的に#1から続きます。ご覧のとおり、最後の2つの方法は一般に役に立ちません。これは、ネットワークのプラグを抜いてWindowsをウイルスから保護するのが一般に役に立たないのと同じです。これがrootが危険な理由です。[+]

[*]もちろん、「誤って」ブロックデバイスに直接書き込む可能性を無視します。はい、ルートはそれを行うことができます。はい、それを防ぐことができます:デバイスを切断します。

[+]これは、これらのBOfH神話の起源でもあります。彼らはすべての神話ではありません。

4
quack quixote

Linuxカーネルの「機能」を使用して、rootユーザーのファイルアクセスを制限することもできます。 http://www.securityfocus.com/infocus/14

また、SE-Linuxやその他のカーネルパッチを使用して、一部のファイルをrootでも不変にする可能性もあります。

3
Rob

Rootがスーパーユーザーであり、彼が何でもできる限り、あなたがrootである場合でも、パーミッションを削除することはできないと思います。これは、操作(ファイルへの書き込み、アプリケーションのオープンなど)を行わない、または行わないようにするルートの意志であると考えられます。

したがって、ルートアカウントの不正使用を防ぐために、ルートアカウントのみを非アクティブ化する可能性があります。

よろしく

[自分への注意:あなたは謙虚でなければならない...たぶんあなたがたは間違っている]

0
dag729