수퍼유저가 아닌 사람이 소유하고 있지만 삭제할 수 없는 디렉토리

수퍼유저가 아닌 사람이 소유하고 있지만 삭제할 수 없는 디렉토리

소유자가 삭제할 수 없는 디렉터리를 만드는 것이 가능합니까? baruser 소유의 디렉터리가 있고 다음과 같이 user 소유의 하위 디렉터리를 foo만들고 싶다고 가정해 보겠습니다 .bar/bazfoo

  • foobar/baz파일 및 디렉터리는 정상적으로 생성 및 삭제가 가능합니다.
  • foobar정상적으로 파일 생성 및 삭제가 가능합니다.
  • foobar대부분의 디렉토리는 정상적으로 삭제될 수 있습니다.
  • foo(또는 수퍼유저가 아닌 다른 사용자)는 디렉토리를 삭제할 수 없습니다.bar/baz

이 작업을 수행하려는 이유는 이를 BTRFS 하위 볼륨으로 설정하고 bar/baz(스냅샷에서 제외) fooBTRFS를 사용하여 삭제하고 다시 생성할 수 있다면 mkdir더 이상 하위 볼륨이 아니기 때문입니다.

답변1

소유자가 디렉터리를 삭제하는 것을 방지하는 방법은 최소한 두 가지가 있다고 생각합니다.

  • 디렉터리가 비어 있지 않으면 삭제할 수 없습니다. 그러니 소유자가 삭제할 수 없는 내용을 넣으세요.
    • 자신이 소유하지 않은 디렉토리
    • 불변 파일(소유자는 중요하지 않음)
  • 디렉토리에 무언가 마운트

첫 번째 경우에도 디렉터리 이름을 바꿀 수 있습니다. 그러나 그 위에 무언가가 설치되어 있다면(어쨌든 당신이 원하는 것입니다), 그들은 그것으로 아무것도 할 수 없습니다. 이제 그들이 할 수 있다면제거위에는 뭐지...

답변2

파일이나 디렉터리를 삭제하려면 상위 디렉터리의 권한이 필요합니다.

/dir1/dir2따라서 내용이 중요하지 않은 디렉토리가 있고 dir2소유자가 dir1로 설정되어 있고 user1소유자가 dir2로 설정된 경우 user2파일이 있는지 여부에 관계없이 user2삭제하거나 이름을 바꿀 수 없습니다 . 어디 보자. 어떤 사용자도 자신이 소유한 홈 디렉토리를 삭제할 수 없습니다.dir2dir2/homeroot/home

관련 정보