사용자가 디렉터리의 파일을 삭제하지 못하도록 방지

사용자가 디렉터리의 파일을 삭제하지 못하도록 방지

이것이 바로 그 장면이다

  1. oracle.dba에 속하는 디렉토리/테스트가 있습니다.
  2. 새 사용자 TEST를 만들었습니다. 이 사용자는 새 파일을 만들 수 있는 권한을 가지지만 자신이 만든 파일을 삭제해서는 안 됩니다.

여러 가지 방법을 시도했지만 acl도 시도했지만 작동하지 않습니다.

답변1

나는 이것이 표준 UNIX 권한만으로는 불가능하다고 생각합니다. 여기서 문제는 (내가 아는 한) 새로 생성된 파일은 항상 작성자의 소유라는 것입니다. 파일을 생성할 수 있으면 상위 디렉터리에 대한 쓰기 액세스 권한이 있으므로 파일도 삭제할 수 있습니다.

고정 비트를 사용하여 사용자가 삭제하는 것을 방지할 수 있습니다.다른 사용자파일이며 디렉터리의 SETGID 비트를 사용하여 새로 생성된 파일 그룹을 변경할 수 있지만 Linux에서는 SETUID 디렉터리 비트가 무시됩니다.

디렉토리를 모니터링하는 데몬을 생성하고(아마도 일종의 파일 변경 모니터를 사용하여) 파일이 생성된 후 소유권을 oracle.dba로 변경할 수 있습니다. 그러나 경쟁 조건이 있습니다. 즉, 데몬이 파일이 존재한다는 사실을 알기 전에 공격자가 파일을 삭제할 수 있습니다.

성공하더라도 쓰기 권한이 있는 한 파일을 명시적으로 삭제하지 않고도 파일을 0 길이로 잘라 내용을 삭제할 수 있습니다.

관련 정보