![예:](https://rvso.com/image/134426/%EC%98%88%3A.png)
파일 삭제는 파일 자체가 아닌 해당 디렉터리에 대한 권한에 따라 결정된다는 것을 알고 있습니다.예를 들어 여기를 참조하세요
하지만 비어 있지 않은 디렉토리는 어떻습니까? rm -rf NON_EMPTY_DIR
디렉터리 내의 파일을 삭제할 수 없기 때문에 사용이 실패합니다. 다른 사용자가 폴더를 삭제하는 것을 방지하는 안전한 방법은 디렉터리를 비어 있지 않고 다른 사람이 쓸 수 없도록 유지하는 것입니까?
예:
# Create write-all outer dir
mkdir outer
chmod 777 outer
# Create two subdirectories, one of which is empty, one not,
# and none are writable by anyone
mkdir outer/{non-,}empty
touch outer/non-empty/file
chmod 555 outer/*
ls -la outer
## drwxrwxrwx 4 user user 80 May 31 15:12 .
## [ .. does not matter here ]
## dr-xr-xr-x 2 user user 40 May 31 15:12 empty
## dr-xr-xr-x 2 user user 60 May 31 15:12 non-empty
rm -rf outer/empty
# Succeeds
rm -rf outer/non-empty
# rm: cannot remove outer/non-empty/file: Permission denied
답변1
삭제할 수는 없지만 이름을 바꾸거나 다른 곳으로 이동할 수 있습니다. 사라지지는 않겠지만 그렇게 보일 것입니다.
답변2
누군가 쓰기 권한 없이 모두 쓰기 디렉터리에서 비어 있지 않은 디렉터리를 삭제할 수 있습니까?
아니요.
다른 사용자가 폴더를 삭제하는 것을 방지하는 안전한 방법은 디렉터리를 비어 있지 않고 다른 사람이 쓸 수 없도록 유지하는 것입니까?
예.
rmdir
비어 있지 않은 디렉토리에서는 작동하지 않으며 쓰기 권한이 없으면 이를 비울 방법이 없습니다.