777 권한을 가진 루트로 디렉터리를 생성하면 기본 사용자로 로그인하면 삭제할 수 있지만, a
또는 사용자로 b
로그인하면 삭제할 수 없습니다 . 표시 권한이 거부되었습니다.
내 질문은 내 기본 사용자가 루트가 만든 폴더를 삭제할 수 있지만 모든 사람이 777 권한을 가지고 있기 때문에 다른 사용자는 삭제할 수 없는 이유입니다.
답변1
사용자에게 디렉터리에 대한 쓰기 및 실행 권한이 있는 경우 소유권에 관계없이 그 안에 있는 모든 파일이나 디렉터리를 삭제할 수 있습니다. 디렉터리에서 파일이나 하위 디렉터리를 삭제하는 것은 삭제된 내용이 아니라 디렉터리를 수정하는 것이기 때문입니다.
예: 내가 소유한 디렉터리 내에 루트 소유 디렉터리를 만든 다음 삭제합니다.
$ sudo mkdir directory
$ ls -l
total 4
drwxr-xr-x 2 root wheel 512 Nov 25 11:11 directory
$ rmdir directory
$ ls -l
(출력 없음)
이제 하위 디렉토리가파일 포함, 그러면 디렉토리의 권한이 더욱 흥미로워집니다.
$ sudo mkdir directory
$ sudo touch directory/file
$ rm -rf directory
rm: directory/file: Permission denied
rm: directory: Directory not empty
여기서는 하위 디렉터리에 있는 파일을 삭제할 권한이 없기 때문에 하위 디렉터리를 삭제할 수 없습니다.
하지만 권한이 로 설정되어 있다고 말하면 777
누구나 파일을 삭제할 수 있다는 의미입니다.
$ sudo chmod 777 directory
$ rm -rf directory
(오류 없음)
내 시스템의 다른 사용자는 내가 작업 중인 디렉터리에 쓰기 권한이 없기 때문에 여전히 이 작업을 수행할 수 없습니다.할 수 있다아니면 삭제하세요콘텐츠루트가 소유한 하위 디렉터리인 디렉터리에 대한 액세스 권한이 있는 경우(사용자에게는 디렉터리에 대한 실행 권한이 필요하며,모든 상위 디렉토리).