쓸 수 없는 디렉터리에 있는 파일을 삭제할 수 있나요?

쓸 수 없는 디렉터리에 있는 파일을 삭제할 수 있나요?

내 폴더는 mike:adm이 소유하고 있으며 권한은 770입니다. 0에 주목하세요.

내 사용자는 mirko이고 mirko 그룹의 구성원입니다.

루트 사용자가 폴더 내부 파일의 소유권을 mirko:mirko로 변경한다고 가정해 보세요.

내 사용자가 폴더에 CD를 넣을 수 없습니다

사용자는 이 파일로 무엇을 할 수 있나요? 허용되지 않는 것은 무엇이며 그 이유는 무엇입니까?

폴더를 "x"할 수 없고 "w"할 수 없기 때문에 파일을 삭제할 수 없는 것 같습니다.

그런데 파일 내용을 읽고 쓸 수 있나요?

답변1

일반적인 UNIX와 유사한 파일 시스템을 가정하면 쓰기 권한 없이 디렉터리에서 파일을 삭제할 수 없습니다.

중요한 아이디어는 파일에 세 가지가 필요하다는 것입니다.

  • 파일의 실제 내용을 담고 있는 데이터 블록
  • 메타데이터에는 소유자, 수정된 날짜, 권한, 데이터 블록을 찾는 방법 등 파일에 대한 정보가 포함되어 있습니다.
  • 파일 이름과 메타데이터를 찾는 방법입니다.

Unix에서는 동일한 파일에 대해 여러 이름을 허용합니다.

디렉토리는 (file name component, pointer to meta-data)파일을 "제거"할 때 디렉토리에서 올바른 최종 구성 요소가 포함된 파일 쌍을 제거하는 것뿐입니다. 파일의 모든 이름이 제거되면 데이터 블록을 재사용할 수 있습니다.

따라서 파일을 "삭제"하려면 디렉터리를 변경할 수 있어야 합니다. 이를 위해서는 디렉터리에 대한 쓰기 권한이 필요합니다.

파일을 삭제하거나 파일에 추가 이름을 추가하는 데에는 파일에 대한 권한이 필요하지 않으며 단지 디렉터리에 대한 작업일 뿐입니다.

배경

메타데이터는 i-nodes. 디렉터리에 저장된 "메타데이터 포인터"는 실제로 i-nodes디스크에 저장된 배열의 인덱스 번호입니다. 오늘날 어레이는 일반적으로 디스크에 분산된 일련의 블록에 저장됩니다. df -i사용 중인 항목 수와 사용 가능한 총 항목 수를 확인하는 데 사용할 수 있습니다 .

관련 정보