このファイルをルートとして削除できないのはなぜですか?


20

2つのファイルを含むディレクトリ試験があります。ファイルを削除する必要がありますが、許可が拒否されました。rm -rfコマンドでもこれらのファイルを削除することはできません。rootユーザーとしてログインしました。

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


13
(1)可能であれば、ターミナルからテキストとしてテキストを投稿してください。理想的には、コピーして貼り付けます。手動でテキストを書き写す以外にテキストをキャプチャする方法がない場合は、テキストをキャプチャする方法を公開します。(2)パーミッションについて質問がある場合は、常に doを実行してls -la.(ディレクトリ)のパーミッションを確認できるようにしてください。
G-Manが「Reinstate Monica」と言う

回答:


39

ルートユーザーからファイルの属性をチェック

# lsattr 

i(不変)またはa(追加のみ)に気付いた場合は、それらの属性を削除します。

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

1
うわー、それはトリッキーなものでした。このソリューションを投稿していただきありがとうございます。私は機知に富んでいた。これは私のユニゾンの同期に何らかの形で関係していると確信していました。(多くの理由により)「不明」状態のままでした。これは、削除できなかったディレクトリが(ユニゾンによって)追加専用に設定されたことを意味します(これはユニゾンの典型です)。しかし、その追加専用モードを表示/リセットする方法がわかりませんでした!あなたは命の恩人でした。元のポスターでも問題が解決したことを願っています。
グウィネスLlewelyn

これは命の恩人です。
ルカ

16

rmファイルを削除する権限がないと苦情を申し立てる最も一般的な理由は、ディレクトリの権限がファイルの削除を禁止していることです。ファイルを削除するには、ディレクトリへの書き込み権限が必要です。ファイルのアクセス許可は無関係です(読み取り専用ファイルを削除する前に確認rm-f求めるプロンプトは表示されませんが、これは単なる確認であり、制限ではありません)。OSXなどの一部のUnixバリアント(Linuxを除く)では、ファイルのACLにより削除を防ぐことができます。ファイルにACLエントリがあった場合、許可フィールドの最後にls -l表示さ@れます。

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ファイルを削除するには削除する)。ルートだけがそれを行うことができます。ルートはこれらの属性をバイパスしてファイルを削除することはできません。最初に属性をオフにする必要があります。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.