root ユーザーからファイルの属性をチェック
# lsattr
i
に気づいたら (不変) または a
(追加のみ)、これらの属性を削除します:
# man chattr
# chattr -i [filename]
# chattr -a [filename]
rm
の最も一般的な理由 ファイルを削除する権限がないと不平を言うのは、ディレクトリの権限によってファイルの削除が禁止されているということです。ファイルを削除するには、ディレクトリに対する書き込み権限が必要です。ファイルのパーミッションは関係ありません (rm
-f
なし 読み取り専用ファイルを削除する前に確認を求めるプロンプトが表示されますが、これは単なる確認であり、制限ではありません)。 OSX (ただし Linux ではない) などの一部の Unix バリアントでは、ファイルの ACL によってその削除を防ぐことができます。 ls -l
@
と表示されます ファイルに ACL エントリがあった場合、許可フィールドの最後に。
root としてのアクセスは権限をバイパスするため、root は読み取り専用ディレクトリにあるファイルでも削除できます。
ls -l
からの出力 .
を示しています 許可欄の最後に。これは、ファイルに SELinux セキュリティ コンテキストがあることを示します。基本パーミッションや ACL とは異なり、ファイルの SELinux セキュリティ コンテキストは、誰がそのファイルを削除できるかを制御できます。さらに、ルートによって常に SELinux をバイパスできるとは限りません (プロセスをユーザー ID 0 として実行することは可能ですが、SELinux ポリシーの設計者が選択した権限はほとんどありません)。 SELinux コンテキストで何ができるかを確認するには、ls -lZ . exam_a
を実行します。 .
ファイルの削除を妨げるもう 1 つの原因は、ファイルまたはファイルを含むディレクトリに追加専用または不変の Linux 属性がある場合です。 lsattr -d . exam_a
を実行 Linux 属性を表示します。 a
の場合 または i
属性がオンになっている場合は、削除する必要があります (chattr -a -i . exam_a
) ファイルを削除するため。 root だけがそれを行うことができます。ルートはこれらの属性をバイパスしてファイルを削除することはできません。最初に属性をオフにする必要があります。
ファイルシステムが読み取り専用でマウントされている場合も、ファイルの削除を妨げることがありますが、その場合は別のエラー メッセージが表示されます。