これは私には非常に奇妙に思えます。私はカーネル2.6.37.2を実行しており、実行しました:
~]$ cp -r /proc/ here
~]$ rm -rf here
期待通りにコピーするといくつかの許可が拒否され、最終的にControl-Cを押します。 Permission denied
新しいディレクトリとファイルを削除しようとすると、多くのファイルに。
メモとして、友人が.tgz
彼のスナップショットの/proc
dir。私はディレクトリを抽出し、それを調べ終わったとき、同じ問題がありました。
rm -rf
はrootで機能します。
lsattr
はe属性を示します(これは私のすべてのファイル/ディレクトリに表示されるものです)。
空でないディレクトリに書き込み権限がない場合、その内容を削除することはできません。
$ mkdir foo
$ touch foo/bar
$ chmod a-w foo
$ rm -rf foo
rm: cannot remove `foo/bar': Permission denied
その理由は、rm
が他のコマンドと同様に権限にバインドされており、bar
を削除する権限にはfoo
への書き込み権限が必要なためです。 rootが常にファイルを削除する権限を持っているため、rm
をrootとして実行する場合、これは当てはまりません。
ディレクトリツリーを削除可能にするには、その中のすべてのディレクトリを書き込み可能にします(通常のファイルの権限は、rm -f
で削除する場合は関係ありません)。次のいずれかのコマンドを使用できます。
chmod -R u+w here # slow if you have a lot of regular files
find here -type d -exec chmod u+w {} +