루트 소유 폴더의 권한

루트 소유 폴더의 권한

권한 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

(오류 없음)

내 시스템의 다른 사용자는 내가 작업 중인 디렉토리에 쓰기 권한이 없기 때문에 여전히 이 작업을 수행할 수 없습니다.~할 수 있었다아직도 삭제해내용물루트 소유 하위 디렉터리의 경우 해당 디렉터리에 액세스할 수 있는 경우(사용자는 디렉터리에 대한 실행 권한이 필요하고모든 상위 디렉토리).

관련 정보