나에게는 이것이 이상해 보인다. 나는 커널 2.6.37.2를 실행 중이고 다음을 실행했습니다.
~]$ cp -r /proc/ here
~]$ rm -rf here
복사가 예상대로 작동하는 동안 일부 권한 거부가 발생하여 결국 Ctrl-C를 누르게 되었습니다. Permission denied
새 디렉터리와 파일을 삭제하려고 하면 많은 파일이 생성됩니다 .
참고로, 친구가 .tgz
자신의 디렉토리 스냅샷을 나에게 보냈기 때문에 이 이상한 동작을 발견했습니다 /proc
. 디렉토리를 추출하고 보기를 마쳤을 때 동일한 문제가 발생했습니다.
rm -rf
루트가 작동하기 때문입니다.
lsattr
e 속성을 표시합니다(이것은 내 모든 파일/디렉토리에 대해 표시되는 속성입니다).
답변1
쓰기 권한이 없는 비어 있지 않은 디렉토리가 존재하는 경우 해당 내용을 삭제할 수 없습니다.
$ mkdir foo
$ touch foo/bar
$ chmod a-w foo
$ rm -rf foo
rm: cannot remove `foo/bar': Permission denied
그 이유는 rm
다른 명령과 마찬가지로 권한이 적용되며, 삭제 권한에는 bar
쓰기 권한이 필요하기 때문입니다 foo
. rm
루트는 항상 파일을 삭제할 수 있는 권한을 갖고 있으므로 루트로 실행 중인 경우에는 적용되지 않습니다 .
디렉토리 트리를 삭제 가능하게 만들려면 그 안에 있는 모든 디렉토리를 쓰기 가능하게 만드십시오(delete를 사용할 때 일반 파일에 대한 권한은 중요하지 않습니다 rm -f
). 다음 명령 중 하나를 사용할 수 있습니다.
chmod -R u+w here # slow if you have a lot of regular files
find here -type d -exec chmod u+w {} +