![사용자가 자신이 만든 공유 디렉터리를 삭제하도록 허용하지 않음](https://linux55.com/image/185163/%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20%EC%9E%90%EC%8B%A0%EC%9D%B4%20%EB%A7%8C%EB%93%A0%20%EA%B3%B5%EC%9C%A0%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8F%84%EB%A1%9D%20%ED%97%88%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%8C.png)
사용자 그룹이 있으므로 그룹이라고 부릅니다. 그룹에 공유 폴더가 있으므로 이를 공유라고 부릅니다.
내가 원하는 것은 이 그룹의 사용자가 이 폴더에서 [파일 및 디렉터리]를 [만들고 읽는] 것입니다. 파일의 경우 파일 소유자가 파일을 삭제할 수 있기를 바랍니다. 하지만 폴더의 경우 폴더가 비어 있거나 해당 사용자의 파일만 포함되어 있으면 소유자만 삭제할 수 있기를 원하지만 다른 사용자의 파일이 포함되어 있는 경우에는 삭제할 수 없습니다. (또는 폴더를 전혀 삭제할 수 없는 경우도 있습니다.)
이제 문제는 그룹의 사용자가 디렉터리(하위 디렉터리라고 부르겠습니다)를 만들 때 사용자에게 읽기 및 쓰기 권한이 필요하다는 것입니다. 그렇지 않으면 사용자가 그 안에 파일을 만들 수 없다는 것입니다(사용자 권한이 그룹 권한보다 먼저 오기 때문입니다:우선 사항.
d---rwx--T 4 root group shared
drwxrwx---T 4 user group subdir
-rwx------ 1 otheruser group file
하지만 이렇게 하면 해당 사용자는 해당 하위 디렉터리에 있는 다른 사용자의 파일을 삭제할 수 있습니다. 사용자에게 하위 디렉터리에 대한 쓰기 권한이 있기 때문에 고정 비트가 설정되어 있어도 마찬가지입니다.
그래서 제가 생각해낸 해결책 중 하나는 공유에 생성된 모든 폴더에 대해 기본 사용자를 루트로 설정하고 파일의 경우 기본 사용자를 해당 폴더를 생성한 사용자로 유지하는 것입니다. 하지만 어떻게 해야 할지 모르겠습니다.
setfacl, setuid 및 setgid를 살펴보았지만 이들 중 어느 것도 내 문제를 해결하지 못하는 것 같습니다.
이 게시물이는 "객체 생성을 감지하고 ACL을 적절하게 변경하는 프로세스"를 생성해야만 달성할 수 있다고 말하지만 해당 게시물은 오래되었습니다(8년 전).
저는 Debian 10에서 Samba Portocol과 공유하고 있습니다.