Centos 6からコピーされたディレクトリを削除できない

Centos 6からコピーされたディレクトリを削除できない

ユーザーの 1 人が、コマンドを使用して、一部のシステム ディレクトリ (例: /lib) を誤って自分のホーム ディレクトリにコピーしてしまいましたcp -r /lib .。その後、これらのディレクトリを削除できません。コマンドは、rm -rf ./lib「アクセスが拒否されました」というエラーのリストを返します (ファイルごとに 1 つだと思います)。コピー コマンドと削除コマンドの両方で同じユーザー名が使用され、その間にいかなる種類のアクセス権限の変更も行われていないことは確かです。

おそらく、ルート権限を使用してこれらのディレクトリを削除することはできますが、なぜこのようなことが起こるのかを知りたいです。これは、使用している Centos 6.8 のバグでしょうか? または、ユーザーが自分のホーム ディレクトリに作成したディレクトリを削除できないのはなぜでしょうか?

答え1

cp -rは、デフォルトで権限モードをコピーします。したがって、/lib所有者が書き込み可能でなかった場合は、./lib書き込み可能でもありません。書き込み不可のディレクトリの内容を削除しようとすると、そのディレクトリの所有者であっても、権限が拒否されます。 で権限を修正できますchmod -R u+w ./lib

デモはこちらです:

barmar@dev:~/test.dir$ mkdir subdir
barmar@dev:~/test.dir$ touch subdir/foo
barmar@dev:~/test.dir$ chmod a-w subdir
barmar@dev:~/test.dir$ cp -r subdir newsubdir
barmar@dev:~/test.dir$ rm -rf newsubdir
rm: cannot remove `newsubdir/foo': Permission denied
barmar@dev:~/test.dir$ chmod a+w newsubdir
barmar@dev:~/test.dir$ rm -rf newsubdir
barmar@dev:~/test.dir$ 

関連情報