rootでファイルを削除できないのはなぜですか?

rootでファイルを削除できないのはなぜですか?

2つのファイルがあるディレクトリテストがあります。ファイルを削除する必要がありますが、権限が拒否されました。rm -rfコマンドでもこれらのファイルを削除することはできません。私はrootとしてログインしました。

ここに画像の説明を入力してください。

答え1

rootユーザーのファイル属性の確認

# lsattr 

i(不変)またはa(追加のみ)が見つかった場合は、次の属性を削除してください。

# man chattr
# chattr -i [filename]
# chattr -a [filename]

答え2

rmファイルを削除する権限がないと苦情を申し立てる最も一般的な理由は、ディレクトリの権限が原因でファイルを削除できないためです。ファイルを削除するには、そのディレクトリに対する書き込み権限が必要です。ファイルの権限は関係ありません(rm読み取り専用ファイルを削除する前に確認メッセージは表示されませんが、これは制限ではなく確認のみです)。-fOSX(Linuxではない)などの一部のUnixバリアントでは、前方十字靭帯ファイルの削除を防ぐために、ファイルに ACL エントリがある場合は、ls -l権限フィールドの末尾に表示されます。@

ルートとしてアクセスすると権限が無視されるため、ルートは読み取り専用ディレクトリからファイルを削除できます。

出力は権限列の末尾に表示されますls -l.これは、ファイルにSELinuxセキュリティコンテキストがあることを示します。基本権限と ACL とは異なり、ファイルの SELinux セキュリティコンテキストは、ファイルの削除が許可される人を制御します。また、SELinuxは常にrootとしてバイパスできるわけではありません(ユーザーID 0で実行されるプロセスがあるかもしれませんが、SELinuxポリシー設計者が選択した権限と同じくらい少なくなります)。 SELinux コンテキストでできることを確認するには、 を実行しますls -lZ . exam_a

ファイルが削除されるのを防ぐもう1つの方法は、そのファイルまたはそのファイルを含むディレクトリに追加の専用または不変の属性がある場合です。Linuxのプロパティlsattr -d . exam_aLinuxのプロパティを表示するには実行してください。aまたは、プロパティがオンの場合、ファイルを削除するにはiそれを削除する必要があります(chattr -a -i . exam_a)。ルートのみこれを実行できます。ルートはファイルを削除するためにこれらのプロパティをバイパスできないため、最初にオフにする必要があります。

ファイルの削除を防ぐもう1つの方法は、ファイルシステムが読み取り専用でマウントされている場合ですが、この場合は他のエラーメッセージが表示されます。

関連情報